1

私は以下のような xml を持っています。私がやろうとしているのは、一致テンプレートを使用して親要素のテキスト ノードを取得することです。

<xml>
  <para>
    <text>
        para 1
    </text>
    <para>
      <text>
        para 2
      </text>     
    </para>
  </para>
</xml>

私のxsltは以下のようになります

<xsl:template match="para">
          <xsl:value-of select="../para/text/text()"/>
</xsl:template> 

最初のパラノードでは、適切なテキストは返されませんが、2番目のパラノードでは、パラ1のみを返す必要があるため、パラ1パラ2が返されます。これを達成するための助けやヒントはありますか?

4

1 に答える 1

1

XML では、2 番目のpara要素の親は最初のpara要素です。つまり、2 番目paraがコンテキスト ノードである場合../para/text/text()、親 (最初のpara) からすべてのpara子 (1 つだけ - 2 番目の) に移動し、その子para内のテキスト ( ) を選択します。textpara 2

para親要素の最初のテキストノードが必要な場合は、次のように記述する必要があります

select="parent::para/text[1]"

apply-templatesただし、内部要素が処理されるように、テンプレート内に を記述する必要があります。

于 2013-05-29T01:06:52.157 に答える