假设我有这样的XML:
<a>
<b>
<i>data</i>
<ii>data</ii>
<iii>data</iii>
</b>
<b>
<i>data<i>
<ii>data<ii>
<iii>data</iii>
</b>
</a>
使用XPath,我如何选择上面的XML来创建这样的结构:
<b>
<i>data</i>
<ii>data</ii>
</b>
<b>
<i>data<i>
<ii>data<ii>
</b>
在这种情况下,我只对i和ii感兴趣,但希望保留外部元素。我也不能使用XSLT,只能使用XPATH语句。
谢谢!
答案 0 :(得分:3)
/a/*/i/..|/a/*/ii/..
“从a,选择所有子项,然后选择所有”i“元素,然后选择父项,或者从选择所有子项中选择所有”ii“元素,然后选择父项。
答案 1 :(得分:1)
也许我错了,但我认为XPATH只在自己的抽象模型中选择“节点”序列。没有XSLT,我会迷失方向。
答案 2 :(得分:1)
选择所有节点并包括其父节点外部节点:
/a[i or ii]|/a/i|/a/ii|/b[i or ii]|/b/i|/b/ii