我正在使用XslCompiledTransform.Load,每次收到错误消息时:
'version' cannot be a child of the 'Transformation' element
这是样式表:
<Transformation><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts"
xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl"><xsl:output
method="xml" /><xsl:template match="node() | @*"><xsl:copy><xsl:apply-templates
select="@* | node()" /></xsl:copy></xsl:template><xsl:template match="testlist"><xsl:copy>
<xsl:apply-templates select="test"><xsl:sort select="requestor/code" /></xsl:apply-
templates></xsl:copy></xsl:template></xsl:stylesheet></Transformation>
如果删除版本,我会收到错误消息:缺少强制属性&#39;版本&#39; 我是否收到错误,因为我正在使用Tag&#39; Transformation&#39;?
中的样式表答案 0 :(得分:1)
您的问题的答案是“是”。您确实收到错误,因为xsl:stylesheet
元素中只有Transformation
元素
<Transformation>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xsl:stylesheet
需要是根元素,因此需要删除Transformation
。
话虽如此,也许你打算这样做....
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="urn:my-scripts"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl">
<xsl:output method="xml"/>
<xsl:template match="/">
<Transformation>
<xsl:apply-templates select="@* | node()"/>
</Transformation>
</xsl:template>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="testlist">
<xsl:copy>
<xsl:apply-templates select="test">
<xsl:sort select="requestor/code"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>