在XML标记中表示空格和制表符

时间:2009-02-05 05:02:01

标签: xml tags

如何在XML标记中表示空格和制表符。是否有任何特殊字符可供他们代表。

8 个答案:

答案 0 :(得分:58)

我认为您可以直接在XML文档中使用实际的空格或制表符,但如果您正在寻找特殊字符来表示它们以便文本处理器不会弄乱它们,那么它就是:

space =  
tab   = 	

答案 1 :(得分:19)

为我工作

\n = 

\r = 
\t = 	
space =  

以下是如何在XML中使用它们的示例

<KeyWord name="hello&#x9;" />

答案 2 :(得分:8)

您不能在XML元素的标记(即名称)中包含空格和制表符,请参阅规范:http://www.w3.org/TR/REC-xml/#NT-STag。除了字母数字字符,名称中允许使用冒号,下划线,短划线和点字符,并且第一个字母不能是短划线或点。某些unicode字符也是允许的,没有实际的双重检查,我会说这些都是国际字母。

答案 3 :(得分:8)

一个旧的,常见问题的新答案......

XML组件名称中的空格

摘要: XML元素或属性名称中允许使用 空白字符。

以下是与空白相关的主要Unicode代码点:

  • #x0009人物制作
  • #x0020 SPACE
  • #x000A LINE FEED(LF)
  • #x000D CARRIAGE RETURN(CR)
  • #x00A0 NO-BREAK SPACE
  • [#x2002-#x200A] EN空间通过头发空间
  • #x205F MEDIUM MATHEMATICAL SPACE
  • #x3000 IDEOGRAPHIC SPACE

W3C XML BNF for XML names 允许这些代码点。

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内容中的空格(非组件名称)

摘要: 当然,在XML内容中允许使用空白字符

W3C XML BNF for Char

允许在XML内容中使用上述所有空格代码点
Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
/* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */

Unicode代码点可以作为character references插入。支持十进制&#十进制;和十六进制&#x十六进制;表单。

答案 4 :(得分:2)

如果您正在讨论从属性值中专门删除多个和非空格空白字符的问题,那么请将它们编码为字符引用,例如&amp;#9;将解决它。

答案 5 :(得分:1)

对我来说,为了使它能够工作,我需要在CDATA xml元素中对空间的十六进制值进行编码,这样解析它就像在htm webgae&amp;中一样。在浏览器中查看时只显示一个空格! (以上所有想法和答案都很有用)

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

答案 6 :(得分:0)

我遇到了同样的问题,上述答案都没有解决问题,所以我尝试了一些非常简单的事情:我只是在strings.xml \n\t

完整的字符串看起来像这个<string name="premium_features_listing_3">- Automatische Aktualisierung der\n\tDatenbank</string>

结果:

  • Automatische Aktualisierung der

    Datenbank

(中间没有额外的行)

也许它会帮助别人。问候

答案 7 :(得分:0)

非法的XML标签名称可以使用Unicode UCS-2对字符进行编码。这工作得很好。我用它来创建变成json的XML(与XPath相比,JPath较弱)。 注意空格,(,)字符的处理。 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_>zzz@yyy.gov</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)": "xxx@yyy.gov",