0

直接の子要素をルート要素から移動してから、それらを新しいルート要素の下にコピーしようとしています。1 つの子要素で実行できますorが、inselectステートメントで適用する方法がわかりません。
再帰的な子要素の現在の XSLT:

<xsl:template match="Element1">
    <Information>
      <xsl:apply-templates select="*[name()!='Element1']"/>
    </Information>
    <xsl:apply-templates select="Element1"/>
  </xsl:template>
  <xsl:template match="Element1/Element1">
    <Metadata>
      <xsl:apply-templates/>
    </Metadata>
  </xsl:template>

別の子要素にも同じように適用したいので試してみました

<xsl:template match="Element1">
    <Information>
      <xsl:apply-templates select="*[name()!='Element1'] | *[name()!='Element2']"/>
    </Information>
    <xsl:apply-templates select="Element1"/>
  </xsl:template>
  <xsl:template match="Element1/Element1">
    <Metadata>
      <xsl:apply-templates/>
    </Metadata>
  </xsl:template>

  <xsl:template match="Element1/Element2">
    <Metadata2>
      <xsl:apply-templates/>
    </Metadata2>
  </xsl:template>

しかし、うまくいきませんでした。助けてください。

4

2 に答える 2