Xmlに二重引用符のエスケープ文字はありますか?私は次のようなタグを書きたいです:
<parameter name="Quote = " ">
しかし、「」と入力すると、文字列が終了したことを意味します。次のようなものが必要です(c ++):
printf("Quote = \" ");
二重引用符の前に、エスケープする文字を記述しますか?
これを試して:
"
以下は、二重引用符で始まるXMLでエスケープする必要がある一般的な文字です。
"
)は"
にエスケープされます&
)は&
にエスケープされます'
)は'
にエスケープされます<
)は<
にエスケープされます>
)は>
にエスケープされます他の人は、この場合の特定のエスケープの処理方法に関して回答しています。
より広い答えは、自分でやろうとしないことです。 XML APIを使用してください-存在するほぼすべての最新のプログラミングプラットフォームで利用できるものがたくさんあります。
XML APIは、このようなことを自動的に処理し、lotを間違えにくくします。 XML APIを自分で作成しているのでない限り、このような詳細について心配する必要はほとんどありません。
古い、よくある質問に対する新しい改善された回答...
二重引用符("
)が表示される場合がありますエスケープせずに:
XMLテキストコンテンツの場合:
<NoEscapeNeeded>He said, "Don't quote me."</NoEscapeNeeded>
単一引用符で区切られたXML属性('
):
<NoEscapeNeeded name='Pete "Maverick" Mitchell'/>
注:単一引用符への切り替え('
)もエスケープする必要はありません。
<NoEscapeNeeded name="Pete 'Maverick' Mitchell"/>
二重引用符("
)エスケープする必要があります:
二重引用符で区切られたXML属性:
<EscapeNeeded name="Pete "Maverick" Mitchell"/>
二重引用符("
)は、非常に限られたコンテキストでのみXMLで"
としてエスケープする必要があります。
エスケープ文字自体はありません。代わりに、"
または<![CDATA["]]>
を使用して"
文字を表すことができます。
何かをすぐに試す必要がある場合は、こちらが迅速で汚れたソリューションです。 属性値の単一引用符 を使用します:
<parameter name='Quote = " '>
C++では、EscapeXML ATL APIを使用できます。これは特殊な文字を処理する正しい方法です...
バックスラッシュに続けて「u」を使用してから、文字のUnicode値を使用してみてください。たとえば、二重引用符のUnicode値は
"-> U + 0022
したがって、AndroidのXMLのテキストの一部として設定すると、次のようになります。
<TextView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:text=" \u0022 Showing double quotes \u0022 "/>
これにより、TextViewに次のようなテキストが生成されます。
「二重引用符の表示」
ほとんどの記号と文字のユニコードは、www.unicode-table.com/enで見つけることができます。