来源xml
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<B>b</B>
<C>c</C>
</ROOT>
我需要结果xml看起来像(属性文件的值应该包含整个源xml):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RD801>
<C801 code="b" file="<?xml version="1.0" encoding="UTF-8"? >
<**ROOT**>
 <B>b</B>
 <C>c</C;
</ROOT>"/>
</RD801>
有没有人可以帮我构建合适的xslt文件,将源xml转换为生成的xml文件。我会很高兴 主要问题是将整个源xml插入属性值。我需要序列化吗?
答案 0 :(得分:1)
如果源XML没有属性,则可以使用此样式表:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes"/>
<xsl:template match="*">
<xsl:text><</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
<xsl:apply-templates select="node()"/>
<xsl:text></</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
</xsl:template>
<xsl:template match="/">
<xsl:variable name="data">
<xsl:apply-templates/>
</xsl:variable>
<RD801>
<C801 code="b">
<xsl:attribute name="file">
<xsl:text><?xml version="1.0" encoding="UTF-8"?>
</xsl:text>
<xsl:copy-of select="$data" />
</xsl:attribute>
</C801>
</RD801>
</xsl:template>
</xsl:stylesheet>
如果您的来源包含属性,注释,处理说明等,则必须编写模板来处理它们。您可以使用上面的样式表作为起点。