xmlの二重引用符にエスケープ文字はありますか?私は次のようなタグを書きたいです:
<parameter name="Quote = " ">
"を付けた場合、それは文字列が終了したことを意味します。次のようなものが必要です(c ++):
printf("Quote = \" ");
二重引用符の前にエスケープするために書く文字はありますか?
xmlの二重引用符にエスケープ文字はありますか?私は次のようなタグを書きたいです:
<parameter name="Quote = " ">
"を付けた場合、それは文字列が終了したことを意味します。次のようなものが必要です(c ++):
printf("Quote = \" ");
二重引用符の前にエスケープするために書く文字はありますか?
回答:
二重引用符で始まる、XMLでエスケープする必要がある一般的な文字を次に示します。
"
)はエスケープされます"
&
)は&
'
)はエスケープされます'
<
)はエスケープされます<
>
)はエスケープされます>
他の人は、この場合の特定のエスケープの処理方法に関して回答しています。
より広い答えは、それを自分でやろうとすることではありません。XML APIを使用してください。現在のほとんどすべての最新のプログラミングプラットフォームで利用できるものはたくさんあります。
XML APIはこのようなことを自動的に処理するので、問題が発生しにくくなります。自分で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の"
ように二重引用符()をエスケープする必要があります"
。
何かをすぐに試す必要がある場合は、すばやく簡単な解決策を以下に示します。属性値には一重引用符を使用します。
<parameter name='Quote = " '>
バックスラッシュの後に「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にあります。