在 xslt 中应用模板未按预期工作
apply template in xslt not working as expected
下面是输入输出 xml 以及 xslt 和预期结果
输入xml-
<?xml version="1.0"?>
<data>
<name>Cat</name>
<sal>1</sal>
</data>
xslt 模板:-
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Details>
<EmployeeName>
<xsl:apply-templates select="employee"/>
</EmployeeName>
</Details>
</xsl:template>
<xsl:template match="employee">
<TEST>
<xsl:value-of select="'CAT'"/>
</TEST>
</xsl:template>
</xsl:stylesheet>
输出得到:-
<?xml version="1.0" encoding="UTF-8"?><Details><EmployeeName/></Details>
预期输出:-
<?xml version="1.0" encoding="UTF-8"?>
<Details>
<EmployeeName>
<TEST>CAT</TEST>
</EmployeeName>
</Details>
您只能将模板应用于存在的节点,但 <xsl:apply-templates select="employee"/>
不会 select 您的输入样本中的任何内容。
下面是输入输出 xml 以及 xslt 和预期结果
输入xml-
<?xml version="1.0"?>
<data>
<name>Cat</name>
<sal>1</sal>
</data>
xslt 模板:-
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Details>
<EmployeeName>
<xsl:apply-templates select="employee"/>
</EmployeeName>
</Details>
</xsl:template>
<xsl:template match="employee">
<TEST>
<xsl:value-of select="'CAT'"/>
</TEST>
</xsl:template>
</xsl:stylesheet>
输出得到:-
<?xml version="1.0" encoding="UTF-8"?><Details><EmployeeName/></Details>
预期输出:-
<?xml version="1.0" encoding="UTF-8"?>
<Details>
<EmployeeName>
<TEST>CAT</TEST>
</EmployeeName>
</Details>
您只能将模板应用于存在的节点,但 <xsl:apply-templates select="employee"/>
不会 select 您的输入样本中的任何内容。