0

エスケープされたHTMLを含むXMLノードがあります。スタイルシートの出力メソッドはHTMLです。

 <ORDCNFMNT>Line 1 of text &lt;BR /&gt; Line 2 of text</ORDCNFMNT>

「&lt;」を回したいのですが および「&gt;」「<」と「>」に戻って

 <ORDCNFMNT>Line 1 of text <BR /> Line 2 of text</ORDCNFMNT>

現在、このノードの処理に使用されるテンプレートは、ノードの値を取得するだけです。

<xsl:template name="ordCnfmNtTmplt">
    <xsl:value-of select="ORDCNFMNT"/>
</xsl:template>

代わりに何をすべきですか?

4

1 に答える 1

1

<xsl:replace>XSLには要素がなく、 fn:replace()XPath関数はXPath2.0でのみ使用できます。文字列の置換を実行するXSLテンプレートを作成することは可能ですが、この場合、それは正しい解決策ではありません。

有効なXMLドキュメントに文字や文字<を含めることはできません。また、別のXMLドキュメントに変換する場合、XSLTではそれらを挿入できません。>&

を使用してテキスト出力に変換する場合<xsl:output method="text" />、エンティティは明示的に行う必要なしに自動的に翻訳されます。

いずれにせよ、XSLTは変更を加えることなく正しいことを行います。

于 2012-05-25T04:38:57.963 に答える