【发布时间】:2022-11-29 20:17:22
【问题描述】:
我要返回所有满足条件的itemNos No。但是我的代码只返回第一个 itemNo(其 Detail Id="3")而不返回其余的。
下面仅返回“0001”。我如何让它同时返回“0001”和“0002”,因为两者的 ID = 3。
XML 结构:
<!-- language: lang-xml -->
<xml>
<Items>
<Item No="0001">
<Details>
<Detail Id="3">
<Colors>
<Color colorName="green" />
<Color colorName="yellow" />
</Colors>
</Detail>
</Details>
</Item>
<Item No="0002">
<Details>
<Detail Id="3">
<Colors>
<Color colorName="purple" />
<Color colorName="pink" />
</Colors>
</Detail>
<Detail Id="6">
<Colors>
<Color colorName="grey" />
<Color colorName="orange" />
</Colors>
</Detail>
</Details>
</Item>
<Item No="0003">
<Details>
<Detail Id="8">
<Colors>
<Color colorName="red" />
</Colors>
</Detail>
</Details>
</Item>
</Items>
</xml>
const search_id = "3"
const foundNo = []
let ans= xmlDoc.evaluate(`//Item[Details/Detail/@Id="${search_id}"]/@No`, xmlDoc.documentElement);
const foundNode = ans.iterateNext();
foundNo = foundNode.textContent // this returns Item No "0001"
我如何让它同时返回“0001”和“0002”。当前仅返回“0001”。谢谢你。
【问题讨论】:
标签: javascript xml xpath