我同意这是一个非常糟糕的主意。这与大多数人想要的 100% 背道而驰……把好的 XML 变成坏的形式。再说一次,如果您没有尝试复制任何层次结构,这很简单。你想要这样的结构:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output indent="yes"/>
<xsl:template match="a">
<rootNode>
<xsl:apply-templates/>
</rootNode>
</xsl:template>
<xsl:template match="*">
<xsl:variable name="name" select="name()"/>
<element>
<xsl:attribute name="name">
<xsl:value-of select="$name"/>
</xsl:attribute>
<xsl:value-of select="."/>
</element>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
这会产生:
<rootNode>
<element name="first">value1</element>
<element name="try">valueX</element>
</rootNode>