xsl:如果至少存在一个子节点

Tra*_*ang 14 xslt xpath

<node>
   <node1><node11/></node1>
   <node2/>
</node>
Run Code Online (Sandbox Code Playgroud)

我想要我的XSLT检查

<xsl:if test="If at least 1 child node exists">
  Only node1 can pass the if condition
</xsl:if>
Run Code Online (Sandbox Code Playgroud)

谢谢你的回复.

Tim*_*m C 26

首先,请在此处注意您的术语.你的意思是"节点"或者你的意思是"元素".节点可以是元素,注释,文本或处理指令.

无论如何,如果你在这里指的是元素,要检查至少存在一个子元素,你可以这样做(假设你在这种情况下定位在节点元素上).

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

您的评论建议只有"node1"可以传递if条件,因此要检查特定元素是否存在,请执行此操作

<xsl:if test="node1">
Run Code Online (Sandbox Code Playgroud)


JLR*_*she 6

在您正在测试的节点的上下文中,这应该用于测试节点是否具有子元素:

<xsl:if test="*">
  Only node1 can pass the if condition
</xsl:if>
Run Code Online (Sandbox Code Playgroud)

如果你实际上是指节点(包括文本节点),那么这将包括文本节点:

<xsl:if test="node()">
  Only node1 can pass the if condition
</xsl:if>
Run Code Online (Sandbox Code Playgroud)

但是<node>也会通过这个测试(<node2>不会).我以为你只是在<node>孩子节点的背景下讲话,但也许不是?