0

これが信じられないほど基本的な質問のように思われる場合は申し訳ありませんが、私が得ることができる助けを本当に(そして本当に)感謝します. 私は単に次のことをしようとしています:
1. 自己閉鎖を置き換えます
2. 「Second_node」からテキストを取得
します 3. そのテキストを変数に格納します
4. そのテキストを新しい「Seventh_node」に配置します

ステップ 1 は完了しましたが、必要な要素から必要な情報を取得できないようです。以下に 3 つの例と、実際に使用している XSLT を示します。重要な問題は、「Second_node」のテキスト コンテンツを格納し、それを新しい要素に配置することだと思います。追加情報として、変換にSaxon 6.5を使用しています。提供された情報が不完全な場合は、お知らせください。

ありがとう!

ソース XML:

<firstnode>
  <Second_node>text for second node</Second_node>
   <Third_node>
     <Fourth_node>
       <Fifth_node>text for fifth node</Fifth_node>
       <Sixth_node>text for sixth node</Sixth_node>
        <Seventh_node />
   </Fourth_node>
 </Third_node>
</firstnode>

私がこれまでに持っているもの:

<firstnode>
  <Second_node>text for second node</Second_node>
   <Third_node>
     <Fourth_node>
       <Fifth_node>text for fifth node</Fifth_node>
       <Sixth_node>text for sixth node</Sixth_node>
        <Seventh_node></Seventh_node>
   </Fourth_node>
   </Third_node>
</firstnode>

必要なもの:

<firstnode>
  <Second_node>text for second node</Second_node>
   <Third_node>
     <Fourth_node>
       <Fifth_node>text for fifth node</Fifth_node>
       <Sixth_node>text for sixth node</Sixth_node>
        <Seventh_node>text for second node</Seventh_node>
   </Fourth_node>
   </Third_node>
</firstnode>

これまでの私のXSLT:

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


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

        <xsl:text>text for second node</xsl:text>
    </xsl:copy>
</xsl:template>

4

3 に答える 3

0

2 番目のテンプレートを次のように更新できます。

<xsl:template match="Seventh_node/text()">
    <xsl:text>text for second node</xsl:text>
</xsl:template>

これはあなたのテキストのみに一致し、要素に入力Seventh_nodeしたものに置き換えます。<xsl:text>

于 2013-05-23T14:56:38.390 に答える