0

我正在尝试将 XML 文档(实际上,我需要将任何 xml 转换)转换为元素列表,这些元素将值存储为元素值,并将原始节点的名称存储为名为“name”的属性,例如:

<rootNode>
    <element name="first">value1</element>
    <element name="try">valueX</element>
<rootNode>

是原始的:

<a>
    <first>value1</first>
    <try>valueX</try>
</a>
4

1 回答 1

0

我同意这是一个非常糟糕的主意。这与大多数人想要的 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>
于 2013-06-19T21:58:43.623 回答