

perlのXML::LibXML::Readerを使うと、XMLを、上から順番にノードを取得して解析できますが、javascript(あるいはjQueryなど)ではどのようにすればよいでしょうか？あるいは同様のことができるライブラリはあるでしょうか？


CC BY-SA 4.0
2022-04-30T02:38:04.393
88578
2022-04-30T05:29:45.587
24431
question
javascript xml
javascriptを使ってXMLを上から順番に解析したい。


以前は E4Xというのがありました。今では非推奨です。

代わりに, DOMParser 使うと良いようです

参考:

  * (MDN) [DOMParser](https://developer.mozilla.org/ja/docs/Web/API/DOMParser)
    * [XML のパースとシリアライズ](https://developer.mozilla.org/ja/docs/Web/Guide/Parsing_and_serializing_XML)
  * (Wikipedia) [ECMAScript for XML](https://ja.wikipedia.org/wiki/ECMAScript_for_XML)

サンプルに示されてるコード

[code]

    const xml = `<sales vendor="John">
        <item type="peas" price="4" quantity="6"/>
        <item type="carrot" price="3" quantity="10"/>
        <item type="chips" price="5" quantity="3"/>
    </sales>`;
    
    const parser = new DOMParser();
    const sales = parser.parseFromString(xml, 'text/xml');
    const items = Array.from(sales.getElementsByTagName("item"));
    alert(items.find(item => item.getAttribute("type") === "carrot").getAttribute("quantity"));
    alert(sales.getElementsByTagName("sales").item(0).getAttribute("vendor"));
    items.forEach(item => alert(item.getAttribute("price")))
    
[/code]


CC BY-SA 4.0
2022-04-30T05:29:45.587
88581
2022-04-30T05:29:45.587
43025
88578
answer