Xml XSLT-用树替换节点

Xml XSLT-用树替换节点,xml,xslt,Xml,Xslt,我有以下xml源代码 <forms> <x> <y> <x-component select="foobar" /> </y> </x> <component name="foobar"> <some> <component> <value>text</value>

我有以下xml源代码

<forms>
  <x>
    <y>
        <x-component select="foobar" />
    </y>
  </x>


  <component name="foobar">
    <some>
        <component>
            <value>text</value>
        </component>
    </some>
  </component>
</forms>

使用
current()/@选择
。或者最好定义一个键
,然后使用do

XSLT输出一个yoba元素,该元素不在预期的输出中。这是正确的吗?这是为了调试,我用yoba获得了输出,但yoba中的xsl:apply模板没有呈现
<?xml version="1.0" encoding="UTF-8"?>
<forms>
    <x>
        <y>
            <component name="foobar">
                <some>
                    <component>
                        <value>text</value>
                    </component>
                </some>
            </component>
        </y>
    </x>
</forms>
<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output indent="yes"/>

    <xsl:template match="x-component">
        <yoba>
            <xsl:attribute name="z">
                <xsl:value-of select="@select"/>
            </xsl:attribute>
            <xsl:apply-templates select="/forms/component[@name=@select]/*"  />
        </yoba>
    </xsl:template>

    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="/">
        <xsl:apply-templates select="*"/>
    </xsl:template>
</xsl:stylesheet>
<xsl:apply-templates select="/forms/component[@name=<PLACEHOLDER>]/*"  />