XSLT选择Just Specific Childs

时间:2013-10-30 21:13:22

标签: xml xslt

我怎样才能在xslt中获得所有有另一个具有某个特定名字的孩子的孩子?

例如:

<node>
    <text>
       <char></char>
    </text>
    <text>
       <char></char>
    </text>
    <text>
        <tag></tag>
    </text>
</node>

我想调用一个应用模板到内部有text的所有tag个节点,并为所有文本节点调用另一个模板,内部有char

1 个答案:

答案 0 :(得分:1)

<xsl:template match="node">
  <xsl:apply-templates select="text[tag]"/>
  <xsl:call-template name="foo">
    <xsl:with-param name="elements" select="text[char]"/>
  </xsl:call-template>
</xsl:template>

应该给你一个想法,虽然我建议在两种情况下使用apply-templates,使用不同的模式或合适的匹配模式:

<xsl:template match="node">
  <xsl:apply-templates/>
</xsl:apply-templates>

<xsl:template match="text[tag]">
  ...
</xsl:templates>

<xsl:template match="text[char]">
  ...
</xsl:templates>