下面给出了示例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]" />