XMLタグでスペースとタブを表現する方法。何か特別な文字があるのでしょうか?
古い、一般的に尋ねられる質問に対する新しい拡張回答。..< / sup>。
要約: Whitespace文字は、XML要素または属性名では not 許可されていません。。
空白に関連する主なUnicodeコードポイントは次のとおりです。
-#x0009
キャラクター集計。
-#x0020
スペース。
-#x000A
LINE FEED(LF)。
-#x000D
キャリッジリターン(CR)。
-#x00A0
NO-BREAK SPACE。
-[#x2002-#x200A]
ヘアスペースを介したENスペース。
-#x205F
中型空間。
-#x3000
IDEOGRAPHIC SPACE。
*これらのコードポイントのどれもXML名のW3C XML BNFによって許可されていません。
NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] |。 [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] |。 [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] |。 [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] |。 [#x10000-#xEFFFF]。 NameChar ::= NameStartChar | "-" | "。"| [0-9] | #xB7 | [#x0300-#x036F] |。 [#x203F-#x2040]。 名前::= NameStartChar(NameChar)*。
---。
要約: * Whitespace文字*はもちろん、XMLコンテンツで許可されています。。
上記のすべての空白コードポイントは、W3C XML BNF for Char
:によってXMLコンテンツで許可されています。
チャー::=#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]。 / 代理ブロック、FFFE、FFFFを除く、Unicode文字。 /。
Unicodeコードポイントは、文字参照として挿入できます。 10進数の &#
decimal;
と16進数の &#x
hex;
の両方の形式がサポートされています。
- Hexadecimal Decimal Unicode Name 。
-` #xA0;
& #xA0;& #xA0; #xA0; #xA0; #xA ; -
#xA0;
& #xA0 ;& #xA0; #xA0; #xA ; #xA -
#xA0;
& #xA0 ;& #xA0; #xA0; #xA ; #xA ; -
or& #xA0;
& #xA0 ;& #xA0; #xA 0; #xA ; 0 -
or
`& #xA0 ;& #xA0; #xA0; [NO-BREAK]
XML要素のタグ(すなわち名前)には、スペースやタブを使用することはできません。http://www.w3.org/TR/REC-xml/#NT-STagの仕様を参照してください。英数字の他に、コロン、アンダースコア、ダッシュ、ドット文字が名前に使用でき、最初の文字をダッシュやドットにすることはできません。また、最初の文字をダッシュやドットにすることはできません。ある種のユニコード文字も許可されています。
違法なXMLタグ名文字は、Unicode UCS-2を使用してエンコードできます。 これは非常にうまく機能します。 jsonに変換されるXMLを作成するために使用しています(JPathはXPathに比べて弱いです)。 スペースの処理に注意してください(、)文字。。 Unicode UCS-2コードチャート:http://www.columbia.edu/kermit/ucs2.html。
tag.Name = tag.Name.Replace(" ", "_x0020_");
tag.Name = tag.Name.Replace("(", "_x0028_");
tag.Name = tag.Name.Replace(")", "_x0029_");
XML:
<Internal_x0020_Chargeback_x0020_ID>{CHARGEBACKCODE}</Internal_x0020_Chargeback_x0020_ID>
<Bill_x0020_To>{CHARGEBACKCODE}</Bill_x0020_To>
<Operator_x0020_or_x0020_Directly_x0020_Responsible_x0020_Individual_x0020__x0028_DRI_x0029_>[email protected]</Operator_x0020_or_x0020_Directly_x0020_Responsible_x0020_Individual_x0020__x0028_DRI_x0029_>
json.netを介してjsonに変換されます。
"Internal Chargeback ID": "{CHARGEBACKCODE}",
"Bill To": "{CHARGEBACKCODE}",
"Operator or Directly Responsible Individual (DRI)": "[email protected]",
私は同じ問題を抱えていましたが、上記の回答のどれも問題を解決しなかったので、非常に簡単なことを試しました。「strings.xml」 \ n \ t
に入れました。
完全な文字列はこのように見えます < string name = "premium_features_listing_3">-Automatische Aktualisierung der \ n \ tDatenbank< / string>
。
結果:
-Automatische Aktualisierung der。
ダテンバンク。
(間に余分な行はありません)。
多分それは他の人を助けるでしょう。 よろしく。