web-dev-qa-db-ja.com

XMLタグでスペースとタブを表す

XMLタグでスペースとタブを表す方法。それらを表す特別な文字はありますか。

41
balaweblog

XMLドキュメントで実際のスペースまたはタブを直接使用できると思いますが、テキストプロセッサが混乱しないようにそれらを表す特殊文字を探している場合は、次のようになります。

space =  
tab   = 	
60
galets

私のために働く

\n = 

\r = 
\t = 	
space =  

XMLでそれらを使用する方法の例を次に示します

<KeyWord name="hello&#x9;" />
20
Wasim A.

一般的なよくある質問に対する新しい拡張回答...

XMLコンポーネント名の空白

概要:空白文字は、XML要素または属性名にnotを許可します。

空白に関連する主なUnicodeコードポイントは次のとおりです。

  • #x0009文字の表
  • #x0020 スペース
  • #x000A LINE FEED(LF)
  • #x000Dキャリッジリターン(CR)
  • #x00A0 NO-BREAKスペース
  • [#x2002-#x200A] EN SPACE〜HAIR SPACE
  • #x205F MEDIUM MATHMATICAL SPACE
  • #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]
Name          ::= NameStartChar (NameChar)*

XMLコンテンツ(コンポーネント名ではない)の空白

概要:空白文字areは、もちろん、XMLコンテンツで許可されています。

上記のすべての空白コードポイントは、XMLコンテンツで CharのW3C XML BNF によって許可されています。

Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
/* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */

Unicodeコードポイントは、 文字参照 として挿入できます。両方の10進数&#decimal;および16進数&#xhex;フォームがサポートされています。

10
kjhughes

XML要素のtag(つまり、名前)にスペースとタブを含めることはできません。仕様を参照してください: http:// www .w3.org/TR/REC-xml /#NT-STag 。英数字のほかに、コロン、アンダースコア、ダッシュ、およびドット文字を名前に使用でき、最初の文字をダッシュ​​またはドットにすることはできません。特定のユニコード文字も許可されていますが、実際には二重チェックは行われません。これらは国際的な文字だと思います。

8
David Hanak

複数の空白文字以外の空白文字が属性値から具体的に削除される問題について話している場合、はい、#9などの文字参照としてエンコードします。それを修正します。

2
bobince

私にとっては、CDATA xml要素内のスペースの16進値をエンコードする必要がありますので、htm webgaeのようにそれを解析して加算し、ブラウザで表示するとスペースが表示されるだけです! (上記のアイデアと回答はすべて有用です)

<my-xml-element><![CDATA[&#x20;]]></my-xml-element>
1
user3584056

不正な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]",
0
jlo-gmail

私は同じ問題を抱えていて、上記の回答のどれも問題を解決しなかったので、非常に簡単なことを試しました:strings.xml\n\t

完全な文字列は次のようになります<string name="premium_features_listing_3">- Automatische Aktualisierung der\n\tDatenbank</string>

結果:

  • Automatische Aktualisierung der

    ダテンバンク

(間に余分な行はありません)

たぶん他の人を助けるでしょう。よろしく

0
Martin Pfeffer