我试图弄清楚如何将属性添加到根节点。我有以下 xslt 来转换两种不同类型的 xml 文件。第一个 xml 文件转换得很好我有问题当它的第二个 xml 文件我的 xslt 抛出错误“无法在“根”类型的节点内构造“属性”类型的项目”我如何在 xslt 中解决这个问题
XSLT 文件
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<!--Check whether lossformsVersion exists If not write-->
<xsl:template match="Inspection[not(@lossFormsVersion)]">
<xsl:attribute name="lossFormsVersion">07-25-2013-1-54</xsl:attribute>
</xsl:template>
<!--Replace the lossformsVersion with this templates version-->
<xsl:template match="Inspection/@lossFormsVersion">
<xsl:attribute name="lossFormsVersion">07-25-2013-1-54</xsl:attribute>
</xsl:template>
<!--Copy the rest of the document as it is-->
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
第一个 XML 文件(转换前)
<?xml version="1.0" encoding="utf-8" ?>
<Inspection lossFormsVersion="07-25-2013-1-52">
.
.
.
</Inspection>
第一个 XML 文件(转换后)
<?xml version="1.0" encoding="utf-8" ?>
<Inspection lossFormsVersion="07-25-2013-1-54">
.
.
.
</Inspection>
第二个 XML 文件(转换前)
<?xml version="1.0" encoding="utf-8" ?>
<Inspection>
.
.
.
</Inspection>
转换后的第二个 XML 文件应该看起来与第一个转换后的 XML 文件完全相同。提前致谢