在 C# 应用程序中加载 XML 文件时,我得到
名称不能以“1”字符开头,十六进制值 0x31。第 2 行,位置 2。
XML 标记的开头是这样的。
<version="1.0" encoding="us-ascii" standalone="yes" />
<1212041205115912>
我不应该不惜一切代价更改这个标签。
我该如何解决这个问题?
在 C# 应用程序中加载 XML 文件时,我得到
名称不能以“1”字符开头,十六进制值 0x31。第 2 行,位置 2。
XML 标记的开头是这样的。
<version="1.0" encoding="us-ascii" standalone="yes" />
<1212041205115912>
我不应该不惜一切代价更改这个标签。
我该如何解决这个问题?
您应该更改标签名称,因为您编写的标签名称违反了 xml 标准。只是为了记住这里有趣的部分:
XML元素 必须遵循以下命名规则:
可以使用任何名称,不保留任何字词。
作为解决您维护标准问题的建议:
Number value="1212041205115912"/>
<_1212041205115912/>
当然,您可以通过编写自己的格式解析器来维护您提出的结构,但我可以说这将是一个非常糟糕的主意,因为将来有人可能会扩展格式并且不会很高兴看到看起来的文件xml 实际上不是,他/她会为此生气。此外,如果您想要自定义格式,请使用更简单的格式,我的意思是:如果不是官方认可的格式,使用一些 '<' 和 '>' 混淆文本文件不会增加任何价值,最好使用类似的东西一个简单的纯文本文件。
如果你绝对不能改变它,例如。出于某种原因,该格式已经广泛使用,并被其他系统/客户/其他任何人使用。
由于它是一个无效的 xml 文档,请在解析之前尝试清理它。例如。制作一个正则表达式,用 <IMessedUp>number</IMessedUp> 替换所有 <number> 标签,然后解析它。
有点不确定的方法,但我会解决你的问题。
如果您需要处理此文档,请停止将其视为 XML,并放弃使用 XML 工具处理它的任何想法。您正在处理专有格式,您需要编写自己的工具来处理它。如果您想要使用 XML 技术的好处,您将不得不重新设计您的文档,使它们成为有效的 XML。