在C#应用程序中加载XML文件时,我将
名称不能以“1”字符(十六进制值0x31 )开头。第2行,位置2。
XML标记的开头是这样的。
<version="1.0" encoding="us-ascii" standalone="yes" />
<1212041205115912>我不应该不惜任何代价改变这个标签。
我怎么解决这个问题?
发布于 2012-05-09 07:11:44
如果你绝对不能改变它,,例如。由于某种原因,这种格式已经在野外出现,并被其他系统/客户/其他任何系统所使用。
因为它是一个无效的xml文档,所以在解析它之前尝试清理它。例如:创建一个regex,用< number> /IMessedUp>替换所有< IMessedUp>number<标记,然后解析它。
不过我会解决你的问题。
发布于 2012-05-09 06:45:18
您应该更改标记名,因为您编写的标记名称违反了the xml standard。只是为了记住其中有趣的部分:
XML命名规则
XML元素必须遵循以下命名规则:
characters
。
任何名称都可以使用,不保留任何单词。
作为解决你的问题的建议,你要遵守标准:
<Number value="1212041205115912"/>
<_1212041205115912/>标记的前缀)
当然,您可以通过编写自己的格式解析器来确定您建议的结构,但我可以说这是一个非常糟糕的想法,因为将来可能有人会扩展格式,并且不愿意看到看起来是xml的文件实际上不是,他/她可以get angry for that。此外,如果您想要您的自定义格式,请使用更简单的格式,我的意思是:如果文本文件不是官方认可的格式,那么使用“<”和“plain +‘>”将不会增加任何价值,最好使用一些类似于简单纯文本文件的内容。
发布于 2012-05-09 11:00:19
如果您需要处理这个文档,那么就不要再把它看作XML了,不要再考虑使用XML工具来处理它了。您正在处理专有格式,您需要编写自己的工具来处理它。如果您想要使用XML技术的好处,您必须重新设计您的文档,以便它们是有效的XML。
https://stackoverflow.com/questions/10510983
复制相似问题