0

私は現在、XMLの再構築に取り組んでいます。ここに私のxmlサンプルがあります:

<SECTION SectionID = "S">
    <DATA>
        <ITEM ID="GLOBAL_DOCSTATUS_1000">
        <D>template</D>
        <E>template</E>
        <R>шаблон</R>
        <K>шаблон</K>
        </ITEM>
    </DATA>
</SECTION>

@SectionIDタグ内の要素として、データを含む<ITEM>新しいタグとして属性を配置する必要があり<SECTIONID>ます。

結果は次のようになります。

<SECTION>
  <DATA>
    <ITEM ID="GLOBAL_DOCSTATUS_1000">
    <D>template</D>
    <E>template</E>
    <R>шаблон</R>
    <K>шаблон</K>
        <SECTIONID>S</SECTIONID> 
    </ITEM>
  </DATA>
</SECTION>
4

1 に答える 1

1
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

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

<xsl:template match="SECTION">
  <xsl:copy>
   <xsl:apply-templates select="@*[name()!='SectionID']|node()"/>
  </xsl:copy>
</xsl:template>

  <xsl:template match="SECTION[@SectionID]/DATA/ITEM">
  <xsl:copy>
   <xsl:apply-templates select="@*|node()"/>
   <SECTIONID><xsl:value-of select="../../@SectionID" /></SECTIONID> 
  </xsl:copy>
</xsl:template>

</xsl:stylesheet>
于 2012-12-13T11:06:01.950 に答える