gpt4 book ai didi

python - 如何在 Python 中读取 XML header

转载 作者:数据小太阳 更新时间:2023-10-29 01:55:51 25 4
gpt4 key购买 nike

如何在 Python 3 中读取 XML 文档的 header ?

理想情况下,我会使用 defusedxml 模块作为 documentation states that it's safer ,但在这一点上(经过数小时的尝试解决这个问题),我会接受任何解析器。

例如,我有一个如下所示的文档(这实际上来自一个练习):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <!-- this is root -->
<!-- CONTENTS -->
</plist>

我想知道如何访问根节点之前的所有内容。

这似乎是一个笼统的问题,我以为我可以很容易地在网上找到答案,但我想我错了。我找到的最接近的是 this question on Stack Overflow ,这并没有真正帮助(我调查了 xml.sax,但找不到任何相关信息)。

最佳答案

我试过了 minidom根据link,它很容易受到十亿笑声和二次爆炸攻击。你提供。这是我的代码:

from xml.dom.minidom import parse

dom = parse('file.xml')
print('<?xml version="{}" encoding="{}"?>'.format(dom.version, dom.encoding))
print(dom.doctype.toxml())
#or
print(dom.getElementsByTagName('plist')[0].previousSibling.toxml())
#or
print(dom.childNodes[0].toxml())

输出:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC '-//Apple Computer//DTD PLIST 1.0//EN' 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'>
<!DOCTYPE plist PUBLIC '-//Apple Computer//DTD PLIST 1.0//EN' 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'>
<!DOCTYPE plist PUBLIC '-//Apple Computer//DTD PLIST 1.0//EN' 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'>

您可以使用 defusedxml 中的 minidom。我下载了那个包,并用 from defusedxml.minidom import parse 替换了 import 并且代码使用了相同的输出。

关于python - 如何在 Python 中读取 XML header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48941032/

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