我必须通过XSLT转换一个简单的XML文件。结果应该是原始XML输入文件加上生成的String。该字符串是从XML文件的值生成的。
生成很简单,但是如何在输出xml中插入完整的原始XML内容?
答案 0 :(得分:1)
这是使用XSLT 1.0的XML的完整副本。更改输出编码(此示例中为UTF-8),并根据需要更改缩进(= yes)。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- Default: copy everything -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
如果你想在最后添加一行文字,请使用:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- add a line of text at the end of the xml -->
<xsl:template match="/">
<xsl:apply-templates/>
<xsl:text>your line of text</xsl:text>
</xsl:template>
<!-- Default: copy everything -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
请记住,最后一个解决方案(使用文本行)不会创建有效的XML!
答案 1 :(得分:0)
您可能希望直接在基本节点或xml文件上使用copy-of
元素。
例如,
<xsl:copy-of select="document('style.xml')/"/>