gpt4 book ai didi

c# - 编码 XML 名称中的空格字符

转载 作者:太空宇宙 更新时间:2023-11-03 19:45:03 25 4
gpt4 key购买 nike

我得到了一个包含如下名称的 XML 文件:

<Benchↂ0020Codeↂ0020>something</Benchↂ0020Codeↂ0020>

ↂ符号用三个字节表示:0xE2、0x86、0x82。

看起来 ↂ0020 应该被视为空格字符。但是当我使用 System.Xml.XmlReader 读取 XML 时,字符 ↂ0020 没有转换为空格。

有没有办法让它们转换(当然除了替换之外)?或者我刚刚得到损坏的 XML?

最佳答案

XML 名称中不允许使用空格字符

86 codepoints whose name contain the word space .忽略由于 MONOSPACE 和任何其他具有视觉表示的 SPACE 命中的代码点,留下以下内容:

  • #x0020 空格
  • #x00A0 不间断空格
  • [#x2002-#x200A] EN SPACE through HAIR SPACE
  • #x205F 中等数学空间
  • #x3000 表意空间

W3C XML BNF for component names 不允许在 XML 名称中使用与空格相关的代码点(空的视觉表示) :

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 名称中空格的替代方法

  • 驼峰式
  • underscore_char
  • 连字符字符
  • period.char

Colon should not be used作为 XML 名称中的单词分隔符,以避免与其在 XML 命名空间中的使用混淆。


ↂ 允许出现在 XML 名称中

字符 ↂ(0xE2、0x86、0x82,即 #x2182)与空格无关 – 它是ROMAN NUMERAL TEN THOUSAND .ↂ 是明确允许的:#x2182[#x2070-#x218F] 代码范围内。

出现在ↂ之后的0020只是数字。与 Benchↂ0020Codeↂ0020 中的其余字符一起,这些字符构成了一个允许的(尽管是非常规的)XML 名称。它们不构成 XML 名称中的空格,因为 XML 名称中不允许使用空格。

关于c# - 编码 XML 名称中的空格字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46634193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com