0

我有一个应用程序,它根据来自我无法控制的来源的一些数据生成一堆 xml。基本上,我将这些数据转换为 xml 文档,以便通过 rss 提要提供服务。我可能会得到类似的数据

2_br=1
3_br=0

我把它变成下面的xml

<2_br>1</2_br>
<3_br>0</3_br>

显然 xml 标签不能以数字开头。我在任何地方都找不到有效字符的列表。它存在于某个地方吗?我基本上只是要添加前缀和无效的起始字符,或者用_.

这并不难,但基本上我只是找不到 xml 标签名称的无效字符列表。

4

2 回答 2

4

这个怎么样:可扩展标记语言(XML)1.0(第五版)

NameStartChar ::= ":" | [AZ] | "_" | [az] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]

于 2011-01-06T16:44:08.027 回答
0
XmlConvert.IsNCNameChar() 

XmlConvert.IsStartNCNameChar()

可用于验证 XML 标记名称:

char[] validTagNameChars = pDesiredTagName.Where(ch => XmlConvert.IsNCNameChar(ch)).ToArray();
string validTagName = new string (validTagNameChars);
if (validTagName == "" || !XmlConvert.IsStartNCNameChar(validTagName[0]))
  validTagName = "_" + validTagName;
于 2014-11-10T14:28:12.277 回答