下面给出了示例XML。

<mapNode>
      <mapNode>...</mapNode>
      <mapNode>...</mapNode>-----I am here at 2
      <mapNode>...</mapNode>
      <mapNode>...</mapNode>
</mapNode>
<mapNode>
      <mapNode>...</mapNode>
      <mapNode>...</mapNode>
</mapNode>


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

提前致谢。

最佳答案

如果要测试元素后面是否有兄弟元素,则可以使用合理命名的“ following-sibling” xpath表达式:

<xsl:if test="following-sibling::*" />


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

<xsl:if test="following-sibling::mapNode" />


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

<mapNode>
   <mapNode>...</mapNode>
   <mapNode>...</mapNode>-----I am here at 2
   <differentNode>...</differentNode>
   <mapNode>...</mapNode>
</mapNode>


因此,如果您想检查紧随其后的兄弟节点是mapNode元素,则可以这样做:

<xsl:if test="following-sibling::*[1][self::mapNode]" />

09-03 18:13