假设以下XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<info>
<code>
ABC
</code>
<desc>
A
</desc>
</info>
<info>
<code>
DEF
</code>
<desc>
A
</desc>
</info>
<info>
<code>
XYZ
</code>
<desc>
B
</desc>
</info>
</root>
如何选择code
值为'A'的所有desc
元素?
我尝试了以下XPath,它什么都没给我:
/root/info[desc='A']
答案 0 :(得分:5)
就像@Jim Garrison所说的那样,你需要在normalize-space()
上使用<desc>
,但是你可以通过添加/code
(和{{{{}}来保留你拥有的xpath。 1}})
normalize-space()
答案 1 :(得分:2)
试试这个:
/root/info/code[normalize-space(../desc/text())='A']
即。告诉它你想要哪些节点(/root/info/code
),按条件过滤。您需要normalize-space()
,因为源文档中值的两侧都有空格。