在C#应用程序中加载XML文件时,我正在
名称不能以“1”字符开头,十六进制值0x31。 第2行,第2位。
XML标记就像这样开始。
<version="1.0" encoding="us-ascii" standalone="yes" />
<1212041205115912>
我不应该不惜一切代价改变这个标签。
我该如何解决这个问题?
答案 0 :(得分:14)
您应该更改标记名称,因为您编写的标记名称违反了the xml standard。 只是为了记住它的有趣部分:
XML 元素 必须遵循这些命名规则:
可以使用任何名称,不保留任何单词。
作为解决问题的建议,以保持标准:
Number value="1212041205115912"/>
<_1212041205115912/>
当然,您可以通过编写自己的格式解析器来保留您提出的结构,但我可以说这将是一个非常糟糕的主意,因为将来有人可能会扩展格式并且不会乐意看到似乎xml的文件实际上不是,他/她可以get angry for that。此外,如果你想要你的自定义格式,使用更简单的东西,我的意思是:用一些'&lt;'弄乱一个文本文件和'&gt;'如果它不是官方认可的格式,则不添加任何值,最好使用简单的纯文本文件。
答案 1 :(得分:4)
如果你绝对无法改变它,例如。由于某种原因,格式已经在野外,并被其他系统/客户/其他人使用。
由于它是一个无效的xml文档,请在解析之前尝试清理它。 例如。制作一个替代所有&lt;数&GT;标签与&lt; IMessedUp&GT;数&LT; / IMessedUp&GT;然后解析它。
有多种方法可以做到,但我会解决你的问题。
答案 2 :(得分:4)
如果您需要处理此文档,请停止将其视为XML,并抛弃使用XML工具处理它的任何想法。您正在处理专有格式,您需要编写自己的工具来处理它。如果您希望使用XML技术的好处,则必须重新设计文档,使其成为有效的XML。