在xslt中检查节点是否存在

时间:2015-06-19 06:54:30

标签: xml xslt

我是xslt的新手,虽然我设法解决它。但我遇到了一个需要专家帮助的案例。我试图找到存在与否的节点。我已经搜索过同样的问题,我没有得到预期的答案。我有一个节点,MainNode-> SubNode1-> SubNode2-> SunNode3。如果我正在检查如下

<xsl:if test= "not(//MainNode/SubNode1/SubNode2/SunNode3)">

哪个有效,但如果相同,我会转换为变量,如下所示

<xsl:if test= "not(//MainNode/$Var1/$Var2/SunNode3)">

其中,Var1 = SubNode1,Var2 = SubNode2

为什么它不起作用。我不能在路径搜索中使用Variable。如果没有解决方案的话。

1 个答案:

答案 0 :(得分:0)

您无法使用变量动态构造路径步骤。但您可以使用变量按名称过滤元素,例如:

<xsl:if test= "not(//MainNode/*[name()=$Var1]/*[name()=$Var2]/SunNode3)">