gpt4 book ai didi

python - 文档开头的 XML 注释

转载 作者:数据小太阳 更新时间:2023-10-29 02:09:36 24 4
gpt4 key购买 nike

如果在 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 条注释,我可以像往常一样遍历列表并读取子节点!

编辑:

伙计们,这个简单的例子很有效,足以解决问题。启动你的 python shell 并执行上面的这段小代码。一旦它什么都不输出,删除评论后它会显示节点!

最佳答案

如果你这样做:

import xml.dom.minidom as dom
sub_tree = dom.parse('xyz.xml')
print sub_tree.children

你会看到你的问题是什么:

>>> print sub_tree.childNodes
[<DOM Comment node " Script ve...">, <DOM Comment node " Date: "07...">, <DOM Element: component at 0x7fecf88c>]

firstChild 显然会选择第一个 child ,这是一个注释,它自己没有任何 child 。您可以遍历子节点并跳过所有评论节点。

或者您可以放弃 DOM 模型并使用 ElementTree ,使用起来更方便。 :)

关于python - 文档开头的 XML 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3021884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com