如何在Python中读取XML头

2024-02-02

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

理想情况下,我会使用 defusedxml 模块作为文件指出它更安全 https://docs.python.org/3/library/xml.html,但在这一点上(经过几个小时的尝试弄清楚这一点之后),我会选择任何解析器。

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

<?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>

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

这似乎是一个普遍的问题,我以为我可以轻松地在网上找到答案,但我想我错了。我发现的最接近的东西是Stack Overflow 上的这个问题 https://stackoverflow.com/questions/16155102/how-to-read-in-xml-header-version-using-python,这并没有真正帮助(我研究了xml.sax https://docs.python.org/3/library/xml.sax.html,但找不到任何相关内容)。


I tried minidom https://docs.python.org/3.6/library/xml.dom.minidom.html据报道,它很容易受到数十亿次笑声和二次爆炸攻击link https://docs.python.org/3/library/xml.html你提供的。这是我的代码:

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())

Output:

<?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'>

您可以使用minidom from defusedxml。我下载了该包并将 import 替换为from defusedxml.minidom import parse并且代码具有相同的输出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中读取XML头 的相关文章

  • 意外的缩进错误,但缩进看起来正确

    我一直在尝试运行此代码 但它引发了缩进错误 无论我尝试什么 结果都是一样的 如果我删除之前的缩进def str self 和代码的其余部分 它工作正常 但在输出时 它不显示问题 而是显示 问题对象 def str self Indentat
  • Django - 403 Forbidden CSRF 验证失败

    我在 Django 中为我的网站提供了一个联系表单 当我在本地测试它时 它工作正常 但现在当我尝试 实时 提交我的联系表单时 它总是出现 403 禁止 CSRF 验证失败 view def contact request if reques
  • 到底什么是序列?

    蟒蛇docs https docs python org 3 glossary html term sequence有点模棱两可 sequence 一个可迭代对象 支持通过以下方式使用整数索引进行有效的元素访问 getitem 特殊方法并定
  • Panda如何将行分组到不同的时间桶中?

    我有一个带有名为时间戳的日期时间类型列的数据帧 我想根据时间部分的时间戳将数据帧拆分为多个数据帧 每个数据帧包含按其值模 x 分钟进行值的行 其中 x 是变量 请注意e and f不按原来的顺序 以 10 分钟为模 我希望所有时间都以3在一
  • Scrapy规则如何与爬行蜘蛛一起工作

    我很难理解 scrapy 爬行蜘蛛规则 我有一个例子 它并不像我希望的那样工作 所以它可能是两件事 我不明白规则是如何运作的 我形成了不正确的正则表达式 导致我无法获得所需的结果 好吧 这就是我想做的 我想编写爬行蜘蛛 它将获取所有可用的统
  • 访问具有动态名称的变量的值

    我发现了几个主题 其中讨论了在循环中动态创建单个变量是不好的做法 最好使用字典 就我而言 我不需要动态创建它们 我想要access他们在循环中 我不想用字典对于他们来说 因为这些变量在代码中的很多地方使用 并且只有一个地方我需要这种动态访问
  • 确定 TCP Listen() 队列中当前积压的连接数

    有没有办法找出currentLinux 上 TCP 套接字上等待 Accept 的连接尝试次数 我想我可以在每个事件循环上点击 EWOULDBLOCK 之前计算成功的 Accept 数量 但我使用的是隐藏这些细节的高级库 Python Tw
  • 没有名为 pandas_datareader 的模块

    我刚刚安装了pandas datareader using pip install pandas datareader运行成功 现在我尝试将它用于教程 当我尝试导入时出现此错误 import pandas datareader as pdr
  • HTML 和 BeautifulSoup:当结构事先不知道时如何迭代解析?

    我从一个简单的 HTML 结构开始 如下所示 感谢 alecxe 的帮助 我能够创建这个 JSON 字典 u Outer List u Inner List u info 1 u info 2 u info 3 使用他的代码 from bs
  • 如何将字符串转换为二进制?

    我需要一种方法来获取 python 中字符串的二进制表示形式 例如 st hello world toBinary st 是否有一个模块可以以某种巧妙的方式执行此操作 像这样的东西吗 gt gt gt st hello world gt g
  • 用于打开大(巨型、巨大、大)文本文件的文本编辑器[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 从返回的 XQuery 中删除重复项

    我的 XQuery 是 declare namespace xsd http www w3 org 2001 XMLSchema for schema in xsd schema for nodes in schema attr in no
  • 包含文件中的块未被扩展模板填充

    我有一个如下所示的模板 include base top html with context include base nav html with context div Stuff block content endblock div i
  • SyntaxError:创建类实例时语法无效[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在 Python shell 3 3 2 中运行这段代码 但它给了我SyntaxError invalid syntax cla
  • 将2个暗淡数组“列表列表”输出到python中的文本文件

    简单的问题 我正在创建一个两个暗淡的数组 ddist 0 d for in 0 d 在下面的代码中使用列表 它使用 gis 数据输出距离 我只是想要一种简单的方法来获取数组 列表的结果并将其输出到保持相同的 N N 结构的文本文件 我过去曾
  • 合法 .xlsx 文件上的 openpyxl load_workbook() 会导致 zipfile.BadZipFile 错误

    我试图做的是将数据帧数据附加到现有的合法 Excel 文件中 我使用了 openpyxl 中的 load workbook 函数 但它系统地返回错误 这是一些在我的机器上崩溃的代码 from openpyxl import load wor
  • 将人员分配到床位 - 自动化方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我每年都会帮助举办青年营 将与会者分配到卧室是一项艰巨的任务 有 92 个卧室 活动持续一周 与会者停留的时间长短不一 而且床需要重复
  • python - 从完整地址获取邮政编码

    我有一个数据框 其中一列中有完整地址 我需要创建一个仅包含邮政编码的单独列 有些地址只有五位数字的邮政编码 而其他地址则有额外的四位数字 如何拆分列以获取邮政编码 示例数据 d name bob john address 123 6th S
  • 我可以在 psycopg2 中使用 md5 身份验证吗?

    经过两个小时的阅读文档 源代码和帮助线程后 我放弃了 我无法让 psycopg2 使用 md5 字符串进行身份验证 根据this http bytes com topic python answers 42597 psycopg authe
  • Django ALLOWED_HOSTS 与 CORS(django-cors-headers)

    ALLOWED HOSTS 和 CORS 之间有什么区别 如果我定义了 ALLOWED HOSTS 我还需要定义 CORS 吗 我没有使用 django 模板 我也有可能动态定义这两个吗 我认为没有 我使用 django 作为后端 并在不同

随机推荐

  • python 中 date.toordinal() 的逆是什么?

    在Python中 一个dateobject 可以这样转换为预推格里高利序数 d datetime date year 2010 month 3 day 1 d toordinal 但什么是逆操作呢 相反的是日期 fromordinal ht
  • 我可以将自定义属性传递给 NLOG 并输出到文件吗?

    编辑 4 From 似乎是 NLog 中的保留字 更改它 FromID 有效 这是一种将变量传递给 NLog 并保持代码干净的好方法 谢谢迈克 编辑3 我真的很喜欢这个主意 按照迈克的建议实现了一个辅助类 public class NLog
  • PHP 电子邮件转垃圾邮件

    我正在尝试向新注册用户发送电子邮件以进行电子邮件验证 PHP 但我不明白 为什么电子邮件会被发送到垃圾邮件 我已经检查了类似的问题 所有答案都是关于标头的 对我来说了解这些标头以及它们是如何验证的似乎有点复杂 通过发件人网站 可以说我发送为
  • 如何在Android 2.0上读取联系人

    我正在开发 Android 2 0 并试图接收所有联系人的列表 Since android provider Contacts People已弃用 我必须使用android provider ContactsContract 但我找不到如何
  • PHP preg_replace 函数替换以前的匹配项

    我有一个相当基本的情况 我有一个字符串数组 我想在单个字符串中找到这些字符串的所有匹配项 并在它们周围放置强标签 这是我到目前为止所拥有的 searchWords array test this s for i 0 i
  • Bootstrap 4:对齐卡片组内的内容

    我的 Bootstrap 4 页面中有一副纸牌 我想对齐这些按钮以获得更好的外观 我们怎样才能做到这一点 Here is an image 这是演示 http 7freres com new http 7freres com new 这张桌
  • 在笔尖而不是故事板中制作单元原型

    为了更好的可重用性 我想在故事板之外创建一个表格视图 现在当我创建一个UITableViewXcode 中基于 ViewController 和 Nib 我在 nib 文件中获得默认的 TableView 但是 我无法在 Interface
  • 在 find -execdir 中从文件名中去除 ./

    整个故事 我正在编写一个脚本 将所有文件从一个目录链接到另一个目录 新文件名将包含原始目录名 我用find此时此刻与 execdir选项 这就是我想使用它的方式 linkPictures sh 2017 wien 2017 10 它将创建一
  • 如何在 NUnit 2.5 中使用 TestCase?

    我有一个Currency我使用 NHibernate 将其保存到数据库中 Currency类看起来像这样 public class Currency Entity public virtual string Code get set pub
  • 如何在调用strcpy之前分配数组?

    Given char test bla bla bla 两者哪个更正确 char test1 malloc strlen test strcpy test1 test or char test1 malloc sizeof test str
  • 一个具有不同返回类型的函数......可以使用泛型吗?

    为了简单起见 我有一些程序 如下所示 public string FetchValueAsString string key public int FetchValueAsInteger string key public bool Fet
  • npm run 脚本中参数的 if-else

    我想调用不同的其他脚本 具体取决于是否给出参数 paramtest if z 1 then echo Foo 1 else echo Bar fi npm 运行参数测试 应该给 酒吧 npm run paramtest 无论如何 应该给出
  • 以编程方式从 Yahoo! 获取联系人地址簿[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何开始使用 MS-Build

    我希望开始使用 MS Build 到目前为止 我有很多手动构建的项目 从 Visual Studio 我想自动化构建过程 并且最好是在我不想安装 Visual Studio 的机器上进行 我开始在 MSDN 上阅读有关 MS Build 的
  • Actor 系统无响应:ThreadPoolExecutor 调度程序仅创建核心线程池,显然忽略最大线程池大小

    更新 我发现如果我设置ThreadPoolExecutor s核心池大小与最大池大小相同 29 个线程 但是 如果我将核心池大小设置为 11 最大池大小设置为 29 那么 Actor 系统只会创建 11 个线程 我该如何配置ActorSys
  • Laravel 服务提供商不受合同约束

    我有以下由服务提供商绑定的合同 接口 但是我收到以下错误 RouteDependencyResolverTrait php 第 81 行中的 ReflectionException 类 App Http Controllers Rocket
  • MongoDB/Mongoose 索引使查询更快还是更慢?

    我有一个这样的文章模型 var ArticleSchema new Schema type String title String content String hashtags String comments type Schema Ob
  • 无法推断概念中的占位符类型

    我正在尝试使用 GCC 8 中的 Concepts TS 复制标准 C 20 概念 以便我可以在标准库中提供它们之前使用它们 我主要复制粘贴最新草稿中的所有内容 然后遇到一个问题 include
  • 将 facebook sdk 链接到 android 项目

    在 Eclipse 中创建 Android 项目并导入 facebook sdk 后 我转到 Android 应用程序的属性 选择 android 并添加 facebook sdk 然后单击 确定 然后 当我再次进入属性时 它会针对该 fa
  • 如何在Python中读取XML头

    如何在 Python 3 中读取 XML 文档的标头 理想情况下 我会使用 defusedxml 模块作为文件指出它更安全 https docs python org 3 library xml html 但在这一点上 经过几个小时的尝试弄