【问题标题】:how to query xml to find a node value in an xml with javascript?如何使用 javascript 查询 xml 以在 xml 中查找节点值?
【发布时间】:2013-01-12 03:30:41
【问题描述】:

如何从下面的 xml 中找到值 docx 且属性 indexed = 1 的节点存在? 我不想使用循环,这需要在 JavaScript 中完成

<docs>
  <doc>
    <name indexed='1'>doc</name>
  </doc>
  <doc>
    <name indexed='1'>xls</name>
  </doc>
  <doc>
    <name indexed='0'>xlsx</name>
  </doc>
  <doc>
    <name indexed='1'>docx</name>
  </doc>
  ..
  ..
</docs>

【问题讨论】:

    标签: javascript xml xml-parsing


    【解决方案1】:

    假设您的平台是一个可以使用 jQuery 的网络浏览器:

    var xml = '<docs>\n<doc>\n<name indexed="1">doc</name>...</docs>';
    var docxIndexed1 = $(':contains("docx")', xml).find('[indexed=1]');
    
    docxIndexed1; // => [ <name indexed=​"1">​docx​</name>​ ]
    

    或者如果你不想使用 jQuery 而只使用 built in DOMParser:

    var xml = '<docs>\n<doc>\n<name indexed="1">doc</name>...</docs>'
      , parser = new DOMParser()
      , doc = parser.parseFromString(xml, 'application/xml')
      , elements = [].slice.apply(doc.getElementsByTagName('*'));
    var docxIndexed1 = elements.filter(function(x) {
      return (x.textContent === 'docx') && (x.getAttribute('indexed') === '1')
    });
    
    docxIndexed1; // => [ <name indexed=​"1">​docx​</name>​ ]
    

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 2014-04-25
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多