18

ニュース記事を含む XML ドキュメントを持っています。ニュース記事の body 要素には、プレーン テキストの中に p タグが含まれています。XSL を使用して本文を取得する場合、たとえば

<xsl:value-of select="body" />

p タグが取り除かれているようです。Visual Studio 2005 の XSL の実装を使用しています。

これを回避する方法はありますか?ありがとう。

4

5 に答える 5

25

使ってみて

<xsl:copy-of select="body"/>

代わりは。同じに関するw3schoolsのドキュメントから:

この<xsl:copy-of>要素は、現在のノードのコピーを作成します。

注: 現在のノードのネームスペース ノード、子ノード、および属性も自動的にコピーされます。

于 2008-10-02T13:27:31.253 に答える
5

入力ドキュメントを制御できない場合は、copy-of が機能するはずです。

http://www.xml.com/pub/a/2000/06/07/transforming/index.htmlより

一方、xsl:copy-of 要素は、テンプレートが選択する各ノードのサブツリー全体をコピーできます。xsl:copy-of 要素の select 属性に適切な値が設定されている場合、これには属性が含まれます。次の例ではの場合、テンプレートはタイトル要素ノードとそのすべての子孫ノードをコピーします。つまり、タグ、サブ要素、および属性を含む完全なタイトル要素をコピーします。"

<xsl:template match="title">
  <xsl:copy-of select="*"/>
</xsl:template>
于 2008-10-02T13:30:59.043 に答える
1

入力ドキュメントを制御できる場合は、CDATAが最適です。

于 2008-10-02T13:25:56.513 に答える
1

XML 要素の値 (これは XSLT だけでなく DOM 実装にも当てはまります) は、その子孫のすべてのテキスト ノードを連結したものです。XSLT ではvalue-of、要素の値を発行し、要素のcopy-ofコピーを発行します。

于 2008-10-02T19:37:02.067 に答える
-1

これは、エンジンが <p> タグを解釈しているためです (出力では除外されます)。「disable-output-escaping=yes|no」属性を使用して、コンテンツを「そのまま」にしたいことを指定する必要があります。

<xsl:value-of select="body" disable-output-escaping="yes"/>
于 2008-10-02T13:26:00.897 に答える