我的xml文件的一部分:
<table>
<row id="aant">
<radio id="radaant">
<omschrijving>test radio</omschrijving>
<omschrijving>part 2</omschrijving>
<table>
<row id="testrow">
<radio id="testrad">
<omschrijving>test radio deeper</omschrijving>
<table/>
</radio>
</row>
</table>
</radio>
</row>
</table>
我想从id =“radaant”的标签广播下获得“omschrijving”。由于“omschrijving”在孩子身上也更深,我总是得到“测试radiopart 2测试无线电更深”,但我只想要“测试radiopart 2”。
我目前正在使用xpath: expr = xpath.compile(“/ table / row [@ id ='aant'] / radio [@ id ='radaant'] / omschrijving”)
如何更改xpath字符串以仅从当前节点获取“omschrijving”?
答案 0 :(得分:2)
您显然在谈论另一个XML文档或另一个XPath表达式。
应用于提供的XML文档:
<table>
<row id="aant">
<radio id="radaant">
<omschrijving>test radio</omschrijving>
<omschrijving>part 2</omschrijving>
<table>
<row id="testrow">
<radio id="testrad">
<omschrijving>test radio deeper</omschrijving>
<table/>
</radio>
</row>
</table>
</radio>
</row>
</table>
您的XPath表达式:
/table/row[@id='aant']/radio[@id='radaant']/omschrijving
精确选择所需节点:
<omschrijving>test radio</omschrijving>
<omschrijving>part 2</omschrijving>
答案 1 :(得分:1)
try expr = xpath.compile(“/ table / row [@ id ='aant'] / radio [@ id ='radaant'] / child :: omschrijving”)