0

次のようなソース XML がありますが、その下に複数の Pr Line タグを配置できる PR タグが 1 つありますが、最終的な XML では、ソース XML (複数の Pr Line タグを含む) を分割したいと考えています。ターゲットxmlに示されているように。

ソース:

  <PRSet>
   <PR>
    <PRNUM>100</PRNUM> 
    <VENDOR>XYZ LLC</VENDOR> 
    <PRLINE>
      <PRLINENUM>101</PRLINENUM>
      <DESCRIPTION>Burner Lamp</DESCRIPTION> 
    </PRLINE>

    <PRLINE>
      <PRLINENUM>102</PRLINENUM>
      <DESCRIPTION>Stove</DESCRIPTION>
    </PRLINE>
   </PR>
  </PRSet>

1 つの PR タグに複数の PRLine タグがある場合、最終的な xml は次のようになります。

目標:

<PRSet>
 <PR>
  <PRNUM>100</PRNUM> 
  <VENDOR>XYZ LLC</VENDOR> 
 <PRLINE>
  <PRLINENUM>101</PRLINENUM>
  <DESCRIPTION>Burner Lamp</DESCRIPTION> 
 </PRLINE>
</PR>

 <PR>
  <PRNUM>100</PRNUM> 
  <VENDOR>XYZ LLC</VENDOR> 
 <PRLINE>
  <PRLINENUM>102</PRLINENUM>
  <DESCRIPTION>Stove</DESCRIPTION>
 </PRLINE>
</PR>

XSLT変換を使用してこれを達成する方法を誰でも提供できますか? よろしくお願いします。

4

1 に答える 1

1

あなたが説明する変換は、次の XSLT スタイルシートで実現できます。

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>

    <xsl:template match="PRSet">
        <xsl:copy>
            <xsl:apply-templates select="PR/PRLINE" />
        </xsl:copy>
    </xsl:template>

    <xsl:template match="PRLINE">
        <PR>
            <xsl:copy-of select="../PRNUM|../VENDOR|." />
        </PR>
    </xsl:template>

</xsl:stylesheet>
于 2013-02-16T09:29:13.823 に答える