1

XSLT 1.0 を使用して XML を変更する必要があります。基本的に、属性 (名前と値) を 1 つの子にコピーする必要があります。

これはxmlです:



    <parent id="3450">
        <son1>
            <name>Malcom</name>
            <age>15</age>
            <description>This is the middle son</description>
        </son1>
        <son2>
            <name>Francis</name>
            <age>19</age>
            <description>This is the oldest son</description>
        </son2>
        <son3>
            <name>Dewey</name>
            <age>9</age>
            <description>This is the youngest son</description>
        </son3>
    </parent>


これは結果になるはずです:



    <parent id="3450">
        <son1 id="3450">
            <name>Malcom</name>
            <age>15</age>
            <description>This is the middle son</description>
        </son1>   
    </parent>


これは私が使用している XSLT です。



    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="parent/son1">    
        <xsl:copy>
            <xsl:attribute name="id"><xsl:value-of select="../@id"/></xsl:attribute>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="parent/son2" />
    <xsl:template match="parent/son3" />


XSLT は機能しているようですが、私の質問は次のとおりです。これは正しい方法ですか?

ありがとう。

4

1 に答える 1