571

HTMLページにレンダリングしたいXMLテキストがあります。このテキストには、エンティティ表現でレンダリングしたいアンパサンドが含まれています&

ソースXMLでこのアンパサンドをエスケープするにはどうすればよいですか?試してみ&ましたが、これは実際のアンパサンド文字(&)としてデコードされ、 HTMLでは無効です。

&そのため、XML出力を使用するWebページのようにレンダリングされるようにエスケープしたいと思います。

4

10 に答える 10

453

XML に が含まれている場合&、これはテキストになります&

それを HTML で使用すると、 としてレンダリングされ&ます。

于 2009-08-25T14:37:31.363 に答える
207

XML 1.0仕様の§2.4に従って、を使用できるはずです&

試してみました& しかし、これは許可されていません。

別の問題ではありませんか?XMLは、これをアンパサンドをエスケープする方法として明示的に定義しています。

于 2009-08-25T14:13:57.690 に答える
145

この&文字自体が XML のエスケープ文字であるため、解決策はそれと Unicode の 10 進数を連結して、&XML 解析エラーが発生しないようにすることです。つまり、文字&をに置き換え&ます。

于 2011-02-09T00:38:27.240 に答える
80

CDATAタグを使用する:

 <![CDATA[
   This is some text with ampersands & other funny characters. >>
 ]]>
于 2009-08-25T14:14:29.653 に答える
49

&amp;正常に動作するはずです。ウィキペディアには、XMLで事前定義されたエンティティのリストがあります

于 2009-08-25T14:14:19.403 に答える
7

& を試しましたが、うまくいきませんでした。Wim ten Brink の回答に基づいて、私が試したところ、うまくいきました。

仲間の開発者の 1 人が、& を使用するように提案してくれました。レンダリング回数に関係なく機能しました。

于 2013-06-20T17:14:07.680 に答える
5

&amp;は、XML ドキュメントのほとんどのセクションでアンパサンドを表す方法です。

XML を HTML 内に表示したい場合は、最初に適切にエンコードされた XML を作成し (これには への変更が必要です&) &amp;次にそれを使用して適切にエンコードされた HTML を作成する必要があります (これには再び への変更&が必要&amp;です)。その結果、次のようになります。

&amp;amp;

XML エンコーディングの詳細については、次を参照してください。

XML ドキュメントでエスケープする必要がある文字は何ですか?

于 2016-08-30T14:44:06.043 に答える
4

<xsl:text disable-output-escaping="yes">&amp;&nbsp;</xsl:text>トリックを行います。

于 2011-03-01T16:23:00.127 に答える
0

XML が以下のようになっているかどうかを検討してください。

<Employees Id="1" Name="ABC">
  <Query>
    SELECT * FROM EMP WHERE ID=1 AND RES<>'GCF'
  <Query>
</Employees>

<>エラーがスローされるため、直接使用することはできません。その場合、その&#60;&#62;代わりに使用できます。

<Employees Id="1" Name="ABC">
  <Query>
    SELECT * FROM EMP WHERE ID=1 AND RES &#60;&#62; 'GCF'
  <Query>
</Employees>

14.1 XML で特殊文字を使用する方法には、すべてのコードがあります。

于 2016-09-17T03:40:00.197 に答える