这是我的xml的摘录:
<node/>
<node/>
<node id="1">content</node>
<node/>
<node/>
<node/>
<node id="2">content</node>
<node/>
<node/>
Run Code Online (Sandbox Code Playgroud)
我定位于node[@id='1']
.我需要一个Xpath来匹配所有<node/>
元素,直到下一个非空节点(这里node[@id='2']
).
编辑: @id属性只是为了更清楚地解释我的问题,但不是我原来的XML.我需要一个不使用@id属性的解决方案.
我不希望空的兄弟姐妹后匹配node[@id='2']
,所以我不能用天真following-sibling::node[text()='']
.
我怎样才能做到这一点?
我有一个以下的xml:
<doc>
<divider />
<p>text</p>
<p>text</p>
<p>text</p>
<p>text</p>
<p>text</p>
<divider />
<p>text</p>
<p>text</p>
<divider />
<p>text</p>
<divider />
</doc>
Run Code Online (Sandbox Code Playgroud)
我想在第一个divider元素之后选择所有p个节点,直到下一次出现divider元素.我试着跟随xpath:
//divider[1]/following-sibling::p[following::divider]
Run Code Online (Sandbox Code Playgroud)
但问题是它在最后一个divider元素之前选择所有p个元素.我不知道如何使用xpath 1来做到这一点.