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