我有两个不同的输入文件,将由一个xslt处理。如何从第一个输入中获取第二个子元素"节点"段,从第二个输入中获取第二个"组"元素段。
第一个输入文件的示例:
<?xml version="1.0" encoding="utf-8"?>
<root>
<node>
<count>1</count>
<value>111</value>
</node>
<node>
<count>2</count>
<value>222</value>
</node>
<node>
<count>3</count>
<value>333</value>
</node>
</root>
第二个输入文件的示例:
<?xml version="1.0" encoding="utf-8"?>
<root>
<group>
<count>1</count>
<value>111</value>
</group>
<group>
<count>2</count>
<value>222</value>
</group>
<group>
<count>3</count>
<value>333</value>
</group>
</root>
下面的脚本不起作用。您能否协助如何解决它。
<xsl:template match="*[local-name()= 'root']">
<xsl:variable name="unknown">
<xsl:if test="normalize-space(*[2]) = 'node'">
<xsl:value-of select="*[local-name()= 'node'][2]"/>
</xsl:if>
<xsl:if test="normalize-space(*[2]) = 'group'">
<xsl:value-of select="*[local-name()= 'group'][2]"/>
</xsl:if>
</xsl:variable>
<xsl:copy-of select="$unknown"/>
</xsl:template>
预期输出为:
<?xml version="1.0" encoding="utf-8"?>
<root>
<node>
<count>2</count>
<value>222</value>
</node>
</root>
或
<?xml version="1.0" encoding="utf-8"?>
<root>
<group>
<count>2</count>
<value>222</value>
</group>
</root>
谢谢大流士
怎么样:
<xsl:template match="/root">
<xsl:copy>
<xsl:copy-of select="*[2]"/>
</xsl:copy>
</xsl:template>
或:
<xsl:template match="/root">
<xsl:copy>
<xsl:copy-of select="(node|group)[2]"/>
</xsl:copy>
</xsl:template>