1

現在、アンパサンド記号 (&) を含む特定の XML タグを出力しようとすると、問題が発生します。

もっと具体的に、次のタグを出力しようとすると。エラーが発生する

<fullname>Ben & Jerry</fullname>

ただし、次のタグを使用しても問題なく動作します

<fullname>Ben and Jerry</fullname>

次のコードで試してみました

<xsl:template match="fullname">
    <xsl:apply-templates/>
</xsl:template>

そして、私も試しました

<xsl:template match="fullname">
    <xsl:value-of-select="." disable-output-escaping="Yes"/>
</xsl:template>

どちらもエラーになりました。私がそれを機能させる唯一の方法は、このようにCDATAを使用することです

<fullname><![CDATA[Ben & Jerry]]></fullname>

ただし、受信した XML ファイルを制御することはできないため、これは実行可能なオプションではありません。この問題を回避/修正するために XSLT 内でできることはありますか?

ありがとう!

4

2 に答える 2

1

もっと具体的に、次のタグを出力しようとすると。エラーが発生する

<fullname>Ben & Jerry</fullname>

実はこれはタグではありません。開始タグの後に無効なコンテンツが続き、その後に終了タグが続きます。

XSLT を使用して無効なコンテンツを出力することはできません。XML 以外のものを出力する必要がある場合は、XML 以外のツールを使用する必要があります。また、XML 以外のフォーラムでアドバイスを得る可能性が高くなります。

あなたが明確にしていないのは、まさにあなたの入力と出力が何であるかです。無効な XML を出力しようとしていると言っていますが、入力が何であるかはわかりません。

于 2013-03-19T23:14:52.197 に答える