-1

以下のような入力 XML があります。

入力 XML

<description-page>
    <noted>12000 </noted>
    <noted>15000</noted>
    <noted>NOTE</noted>
</description-page>
<idescription-note>
<noted>12000</noted>
<noted>15000</noted>
<noted>ENG CHG</noted>
</idescription-note>

次のように出力したい

<sample>
<input>
    <noted>12000</noted>
    <noted>12000</noted>
</input>
<input>
    <noted>15000</noted>
    <noted>15000</noted>
</input>
<input>
    <noted>NOTE</noted>
    <noted>ENG CHG</noted>
</input>
</sample>

ここでは、すべての説明ページ (注記) が必要な idscription-note (注記) 要素

私が今やっているのはxsltです

<xsl-template match="description-page | idescription-note>

これは私がxsltを試している方法ですが、2つのノードを一致させる方法に苦労していません。

ここに案内してください。

よろしくカーシック

4

2 に答える 2

0

入力が

<root>
<description-page>
    <noted>12000 </noted>
    <noted>15000</noted>
    <noted>NOTE</noted>
</description-page>
<idescription-note>
<noted>12000</noted>
<noted>15000</noted>
<noted>ENG CHG</noted>
</idescription-note>
</root>

次にスタイルシート

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

<xsl:output indent="yes"/>

<xsl:variable name="id-notes" select="//idescription-note/noted"/>

<xsl:template match="root">
  <sample>
    <xsl:apply-templates select="description-page/noted"/>
  </sample>
</xsl:template>

<xsl:template match="description-page/noted">
  <input>
    <xsl:copy-of select="."/>
    <xsl:variable name="pos" select="position()"/>
    <xsl:copy-of select="$id-notes[$pos]"/>
  </input>
</xsl:template>

</xsl:stylesheet>

出力

<sample>
   <input>
      <noted>12000 </noted>
      <noted>12000</noted>
   </input>
   <input>
      <noted>15000</noted>
      <noted>15000</noted>
   </input>
   <input>
      <noted>NOTE</noted>
      <noted>ENG CHG</noted>
   </input>
</sample>
于 2012-07-19T13:08:36.373 に答える