0

我有一个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使用从第二部分中提取 1 和 2 Xpath。显然,Section1是第一次命中,结果是从目录中返回的。

我给的命令是:

"//article//section//p[contains(translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'content_id_2') ]/text()";

显然,这content_ID_2从目录部分返回第一个。有什么方法XPath可以使用我过滤掉第一部分并让它只返回第二部分的值?

提前致谢。
-西马克

4

2 回答 2

0

如果它总是第二,那么是的,//article//section[2]过滤到第二部分,剩下的路径应该像往常一样工作。

于 2013-06-25T15:02:04.103 回答
0

你可以试试:

"//article//section[not(H4)]//p[contains(translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'content_id_2') ]/text()";

[ not(H4)]仅选择那些section没有H4节点作为其直接子节点的节点,这里就是这种情况。

希望有帮助。

于 2013-06-25T10:31:26.187 回答