Xpath。如何指定两个节点之间的节点?

问题描述:

可以有两个可能的结构:Xpath。如何指定两个节点之间的节点?

1.

<c>TTTT</c> 
<a>AAAA</a> 
<b>BBBB</b> 
<c>CCCC</c> 
<d>DDDD</d> 
<c>CCCC</c> 

2.

<c>TTTT</c> 
<a>AAAA</a> 
<b>BBBB</b> 
<d>DDDD</d> 
<c>CCCC</c> 

我怎样才能在第一种情况下选择节点<c><b>后,如果它是第二壳体,将它设置为空?

+1

你能发表一个xml/html的例子吗? – Paxic

+0

我一般都认同 - 但是一个示例可以更容易地将工具和测试结果放入工具中,而不是假设用户的模式和数据。或者我正在思考这个问题。 – Paxic

+0

@Geohut Paxic之前对问题进行了评论,格式正确,以显示XML示例,只是为了清楚情况。另外,在xpath中的“b之后”是'b/following-sibling :: someNode',这是完全可能的,虽然* 2个节点之间*有时是不可能的 – har07

可以使用following-sibling轴用于此目的:

//b/following-sibling::*[1][self::c] 

简要说明:

  • b/following-sibling::*[1]:获得直接兄弟下一个<b>

  • [self::c]:检查是否是兄弟姐妹是<c>元素