XSLT查找是否存在兄弟姐妹

Rit*_*esh 4 xslt xpath

示例XML如下.

<mapNode>
      <mapNode>...</mapNode>
      <mapNode>...</mapNode>-----I am here at 2
      <mapNode>...</mapNode>
      <mapNode>...</mapNode>
</mapNode>
<mapNode>
      <mapNode>...</mapNode>
      <mapNode>...</mapNode>
</mapNode>
Run Code Online (Sandbox Code Playgroud)

我想知道位置3是否存在.请帮我.

提前致谢.

Tim*_*m C 15

如果你想测试一个元素后面是否有一个兄弟,你可以使用明智的名字"follow-sibling"xpath表达式:

<xsl:if test="following-sibling::*" />
Run Code Online (Sandbox Code Playgroud)

请注意,这将测试是否存在任何后续兄弟.如果您只想测试mapNode元素,则可以执行此操作

<xsl:if test="following-sibling::mapNode" />
Run Code Online (Sandbox Code Playgroud)

但是,在以下情况中也是如此,因为后续兄弟会查看以下所有兄弟姐妹:

<mapNode> 
   <mapNode>...</mapNode> 
   <mapNode>...</mapNode>-----I am here at 2 
   <differentNode>...</differentNode> 
   <mapNode>...</mapNode> 
</mapNode>
Run Code Online (Sandbox Code Playgroud)

如果你想在兄弟之后立即检查最多的是mapNode元素,你会这样做:

<xsl:if test="following-sibling::*[1][self::mapNode]" />
Run Code Online (Sandbox Code Playgroud)