首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >名称不能以“1”字符(十六进制值0x31 )开头。第2行,位置2

名称不能以“1”字符(十六进制值0x31 )开头。第2行,位置2
EN

Stack Overflow用户
提问于 2012-05-09 06:43:08
回答 3查看 23.4K关注 0票数 11

在C#应用程序中加载XML文件时,我将

名称不能以“1”字符(十六进制值0x31 )开头。第2行,位置2。

XML标记的开头是这样的。

代码语言:javascript
运行
复制
<version="1.0" encoding="us-ascii" standalone="yes" />
<1212041205115912>

我不应该不惜任何代价改变这个标签。

我怎么解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-09 07:11:44

如果你绝对不能改变它,,例如。由于某种原因,这种格式已经在野外出现,并被其他系统/客户/其他任何系统所使用。

因为它是一个无效的xml文档,所以在解析它之前尝试清理它。例如:创建一个regex,用< number> /IMessedUp>替换所有< IMessedUp>number<标记,然后解析它。

不过我会解决你的问题。

票数 4
EN

Stack Overflow用户

发布于 2012-05-09 06:45:18

您应该更改标记名,因为您编写的标记名称违反了the xml standard。只是为了记住其中有趣的部分:

XML命名规则

XML元素必须遵循以下命名规则:

characters

  • Names

  • 名称可以包含字母、数字,其他不能以数字开头,或者标点符号character
  • Names不能以字母XML (或Xml或xml等)开头,
  • 名称不能包含空格

任何名称都可以使用,不保留任何单词。

作为解决你的问题的建议,你要遵守标准:

<Number value="1212041205115912"/>

  • Add

  • 使用属性( <_1212041205115912/>

标记的前缀)

当然,您可以通过编写自己的格式解析器来确定您建议的结构,但我可以说这是一个非常糟糕的想法,因为将来可能有人会扩展格式,并且不愿意看到看起来是xml的文件实际上不是,他/她可以get angry for that。此外,如果您想要您的自定义格式,请使用更简单的格式,我的意思是:如果文本文件不是官方认可的格式,那么使用“<”和“plain +‘>”将不会增加任何价值,最好使用一些类似于简单纯文本文件的内容。

票数 16
EN

Stack Overflow用户

发布于 2012-05-09 11:00:19

如果您需要处理这个文档,那么就不要再把它看作XML了,不要再考虑使用XML工具来处理它了。您正在处理专有格式,您需要编写自己的工具来处理它。如果您想要使用XML技术的好处,您必须重新设计您的文档,以便它们是有效的XML。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10510983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档