-1

以下の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>
4

1 に答える 1

1

プラットフォームがWebブラウザーであるとすると、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​&lt;/name>​ ]

または、jQueryを使用せず、組み込みの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​&lt;/name>​ ]
于 2013-01-12T06:48:24.970 に答える