我在代码中选择以下特定标题时遇到了麻烦:
<div>
<h2>Section 1</h2>
<div>Item 1</div>
<div>Item 2</div>
<h2>Section 2</h2>
<div>Item 3</div>
<div>Item 4</div>
<div>Item 5</div>
</div>我试图让节点使用前面的兄弟姐妹,比如:
//div/div[preceding-sibling::h2[1][position()=1]]我需要所有的div,其中最前面的h2兄弟姐妹位置1,但我仍然得到所有的5个项目。
你能告诉我我做错了什么吗?
输出位置1的示例(第1节):
<div>Item 1</div>
<div>Item 2</div>输出位置2的示例(第2节):
<div>Item 3</div>
<div>Item 4</div>
<div>Item 5</div>发布于 2015-04-19 18:26:07
这可能是一件棘手的事情,但您可以使用的一种方法是count()。
//div/div[count(preceding-sibling::h2) = 1]您对position()的尝试没有奏效的原因是,position()是相对于当前的选择进行评估的。使用preceding-sibling::h2[1][position()=1],您将选择最近的h2,然后选择该集合中的第一个节点。
https://stackoverflow.com/questions/29732888
复制相似问题