我已经看到了基于节点的值应用以下兄弟节点的问题,但我的问题与实际节点本身有关.
这是我所拥有的XML类型:
<Employee> <Summary> <A> <B> </Summary> <Elections> </Elections> <Employee>
我需要写一个Xpath条件如下:
if (NOT(the following sibling(first sibling) of /Employee/Summary is Elections)),then do something.
目前我有:
<xsl:if test="(not(following-sibling::Employee/Summary[1]='Earnings')) <xsl:call-template name="EmployeeRecord"/> </xsl:if>
请注意,我没有检查节点值,而是检查节点本身(即节点名称).
任何对正确方向的帮助将不胜感激.
你在正确的轨道上.以下兄弟轴从上一步中的上下文节点求值.
原文链接:https://www.f2er.com/xml/292887.html>如果您正在寻找/ Employee / Summary的以下兄弟节点的第一个元素,则可以使用:/ Employee / Summary / following-sibling :: * [1].
>为了评估第一个以下兄弟是否是Elections元素,您可以使用附加的谓词过滤器[self :: Elections].
>测试的否定,将整个事情包装在not()
把它们放在一起,调整你的例子:
<xsl:if test="not(/Employee/Summary/following-sibling::*[1][self::Elections])"> <xsl:call-template name="EmployeeRecord"/> </xsl:if>