0

以下は、ソース xml の抜粋です。

 <text key="#OK" default="TEST">
        <lang id="de" value="i.O." />
        <lang id="en" value="OK" />
        <lang id="cz" value="ak" />
        <lang id="dk" value="OK" />
 </text>

各要素内に、属性「ch」を持つtext新しいlang要素と、テキスト要素の属性の内容を持つ属性が挿入されるように、このドキュメントを変換したいと思います。idvaluedefault

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

 <text key="#OK" default="TEST">
      <lang id="de" value="i.O." />
      <lang id="en" value="OK" />
      <lang id="cz" value="ak" />
      <lang id="dk" value="OK" />
      <lang id="ch" value="TEST" />
 </text>

正しい方向へのプッシュは非常に高く評価されます。

4

1 に答える 1

1

これはそれを行います:

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

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

  <xsl:template match="text">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()" />
      <lang id="ch" value="{@default}" />
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

サンプル入力で実行すると、結果は次のようになります。

<text key="#OK" default="TEST">
  <lang id="de" value="i.O." />
  <lang id="en" value="OK" />
  <lang id="cz" value="ak" />
  <lang id="dk" value="OK" />
  <lang id="ch" value="TEST" />
</text>
于 2013-04-26T13:36:59.097 に答える