我有XML
这样的文件:
<article>
<section>
<H4>Table of Contents </H4>
<p> Content_ID_1 </p>
<p> content_ID_2 </p>
<p> content_ID_3 </p>
</section>
<section>
<p>Content_ID_1 </p>
<p>content_ID_2 </p>
</section>
</article>
我正在尝试使用Content_ID
从第二部分中提取Xpath
1和2。显然,Section1
是第一个命中,结果从目录中返回。
我给出的命令是:
"//article//section//p[contains(translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'content_id_2') ]/text()";
显然,这会从目录部分返回第一个content_ID_2
。有没有办法使用XPath
我可以过滤掉第一部分并让它只返回第二部分的值?
提前致谢。
-simak
答案 0 :(得分:0)
您可以尝试:
"//article//section[not(H4)]//p[contains(translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'content_id_2') ]/text()";
[not(H4)] 仅选择那些没有section
节点作为其直接子节点的H4
个节点,这就是这种情况。< / p>
希望有所帮助。
答案 1 :(得分:0)
如果它总是第二个,那么是,//article//section[2]
过滤到第二部分,其余路径应该照常工作。