【发布时间】:2015-06-05 04:58:50
【问题描述】:
我目前在运行时生成 XML 然后尝试在其他地方解析它的应用程序遇到一些问题。
在某些情况下,我收到一条消息“解析属性名称错误”,这是一个失败的 XML 示例:
<datastore>
<row id="Timer?ID=0">
<ID>0</ID>
<START_TIME_(sec)>120</START_TIME_(sec)>
</row>
</datastore>
解析器在尝试读取 ( 字符时似乎立即失败,这发生在 ) 和 等其他字符?。
我认为 XML 中唯一的无效字符是在这个答案中指定的:https://stackoverflow.com/a/1091953
知道为什么这会失败吗?
【问题讨论】:
-
我永远不确定人们想要什么样的答案来回答这样的“为什么”问题。 (a) 它是无效的,因为规范是这样说的。 (b) 为什么规范会这样说? (b(i)) 是否有书面证据证明规范作者在做出此决定时使用的理由? (b(ii)) 你能想到一个理性的规范作者做出这个决定的任何理由吗?
-
我不知道标识符名称中允许使用括号的任何语言。你的期望有合理的依据吗?
-
@MichaelKay 总的来说,我明白你的意思,但在这种情况下,OP 找到了他们认为意味着这些 将 是有效字符的参考。因此,问题是“另一个参考是错误的,还是我误解了它?”并且(接受的)答案是“这是您误解的内容”。
标签: xml xml-parsing