【发布时间】:2010-06-12 20:55:24
【问题描述】:
如果 xml 文件开头有如下注释,我的 PYTHON xml 解析器将失败:
<?xml version="1.0" encoding="utf-8"?>
<!-- Script version: "1"-->
<!-- Date: "07052010"-->
<component name="abc">
<pp>
....
</pp>
</component>
这样发表评论违法吗?
编辑:
它没有抛出错误,但 DOM 模块将失败并且无法识别子节点:
import xml.dom.minidom as dom
sub_tree = dom.parse('xyz.xml')
for component in sub_tree.firstChild.childNodes:
print(component)
我无法访问子节点; sub_tree.firstChild.childNodes 返回一个空列表,但如果我删除这 2 个 cmets,我可以像往常一样遍历列表并读取子节点!
编辑:
伙计们,这个简单的例子很有效,足以弄清楚。启动你的 python shell 并执行上面的这个小代码。一旦它什么都不输出,并且在删除 cmets 后它会显示节点!
【问题讨论】:
-
它们是合法的。 w3.org/TR/REC-xml/#sec-comments 并且您应该显示失败的代码,并且您应该阅读 SO 常见问题解答 stackoverflow.com/faq
-
这是合法的 XML,但这并不意味着所有的 XML 解析器都会处理它。您正在使用什么解析器,返回了什么错误,如果可能,请发布您正在做什么的代码 sn-p。
-
<ppe> ... </pp>-- 请不要凭记忆输入;给我们看一个实际的小文件。