gpt4 book ai didi

python - 是否有一个开关可以忽略 LXML 中未定义的 namespace 前缀?

转载 作者:太空狗 更新时间:2023-10-29 21:09:08 25 4
gpt4 key购买 nike

我正在解析一个不兼容的 XML 文件(Sphinx's xmlpipe2 格式)并希望 LXML 解析器忽略存在未解析的命名空间前缀的事实。

Sphinx XML 示例:

<sphinx:schema>
<sphinx:field name="subject"/>
<sphinx:field name="content"/>
<sphinx:attr name="published" type="timestamp"/>
<sphinx:attr name="author_id" type="int" bits="16" default="1"/>
</sphinx:schema>

我知道传递解析器关键字选项来尝试恢复损坏的 XML,例如

parser = etree.XMLParser(recover=True)
tree = etree.parse('sphinxTest.xml', parser)

但上面并没有忽略前缀,而是将其删除。

我可以创建一个目标,它添加了删除的前缀,例如

parser = etree.XMLParser(target = AddPrefix())

其中 AddPrefix() 是一个类,它为每个属性标签添加前缀。有没有更简单的方法来做到这一点?最终我想以编程方式干净地编写 Sphinx 的 xmlpipe2 格式。

最佳答案

xmlns:sphinx="bogus" 添加到根元素。

关于python - 是否有一个开关可以忽略 LXML 中未定义的 namespace 前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3521140/

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