xpath高级语法混乱

时间:2012-09-06 16:00:22

标签: xml xslt xpath

<xsl:template name="makeDiv">   
    <xsl:when test="descendant::*[Parent][Name]">
    </xsl:when>  
</xsl:template>
在某个地方......

<xsl:if test="descendant::ParentCheck">
   <xsl:call-template name="makeDiv"/>
</xsl:if>

有人可以向我解释一下template-name = makeDiv是什么定义的,测试是做什么的?它是否正在寻找属于Parent后代的任何节点的属性“Name”和“ParentCheck”?

此外,<xsl:when test="not(descendant::*[SomeAttribute])">是什么意思?它是指其他不是SomeAttribute的子元素吗?

1 个答案:

答案 0 :(得分:3)

descendant:*[Parent][Name]表示“任何具有子'父'元素和'姓名'元素的后代。

i.e. <SomeElement>
         <Parent/>
         <Name/>
     <SomeElement>

descendant::ParentCheck表示“任何名为ParentCheck的后代”

i.e. <ParentCheck />