我有生成从源我不控制某些数据的基于一串XML的应用程式。基本上我打开这些数据转换成XML文档的通过RSS订阅服务。我可以获取数据等

2_br=1
3_br=0

和我把它变成下面的XML

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

显然的XML标记不能以数字开头。我找不到任何地方的有效字符列表。它存在于某个地方?我基本上只是将前缀和无效的起始字符或用_取代内嵌无效字符。

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

有帮助吗?

解决方案

这样如何:可扩展标记语言(XML)1.0(第五版)

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]

其他提示

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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top