如何在 Python 中根据 DTD 文件验证 xml

2023-11-29

我需要验证 XML 字符串(而不是文件) 针对 DTD 描述文件。

这怎么能在python?


另一个不错的选择是lxml的验证我觉得用起来很愉快。

取自 lxml 站点的一个简单示例:

from StringIO import StringIO

from lxml import etree

dtd = etree.DTD(StringIO("""<!ELEMENT foo EMPTY>"""))
root = etree.XML("<foo/>")
print(dtd.validate(root))
# True

root = etree.XML("<foo>bar</foo>")
print(dtd.validate(root))
# False
print(dtd.error_log.filter_from_errors())
# <string>:1:0:ERROR:VALID:DTD_NOT_EMPTY: Element foo was declared EMPTY this one has content
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Python 中根据 DTD 文件验证 xml 的相关文章

  • 学习Python中的解析器

    我记得我读过有关解析器的内容 您只需提供一些示例行 它就知道如何解析某些文本 它只是确定两条线之间的差异 以了解可变部分是什么 我以为它是用 python 写的 但我不确定 有谁知道那是什么图书馆吗 可能你的意思是模板制作器 http co
  • 有什么好的适用于 Google App Engine 应用程序的 AJAX 框架吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的 Google App Engine 应用程序中实现 AJAX 因此我正在寻找一个好的
  • pandas read_csv 之前预处理数据文件

    我使用 SAP 的数据输出 但它既不是 CSV 因为它不引用包含其分隔符的字符串 也不是固定宽度 因为它具有多字节字符 它是一种 固定宽度 字符 为了将其放入 pandas 我当前读取文件 获取分隔符位置 对分隔符周围的每一行进行切片 然后
  • 如何在Python + Selenium中获取元素的值

    我在我的 Python 3 6 3 代码中得到了这个 HTML 元素 作为 Selenium网页元素当然 span class ocenaCzastkowa masterTooltip style color 000000 alt 5 sp
  • 如何在plotly(python)中的刻度标签和图形之间添加空格?

    如果我使用绘图创建水平条形图 则每个条形的标签都与图表相对应 我想在标签和图表之间添加一些空间 填充 边距 我怎样才能做到这一点 Example import plotly offline as py import plotly graph
  • NumPy 数组与 SQLite

    我在 Python 中见过的最常见的 SQLite 接口是sqlite3 但是有什么东西可以很好地与 NumPy 数组或 rearray 配合使用吗 我的意思是 它可以识别数据类型 不需要逐行插入 并提取到 NumPy rec 数组中 有点
  • 获取字符串模板中所有标识符列表的函数(Python)

    对于标准库string template在Python中 有没有一个函数可以获取所有标识符的列表 例如 使用以下 xml 文件
  • 在多核上运行 python 线程

    我知道Python 2 7不允许在不同的内核上运行多个线程 你需要使用multiprocessing模块以实现某种程度的并发性 我正在看concurrent futuresPython 3 4 中的模块 是否使用ThreadPoolExec
  • 为什么我会收到 ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

    以下代码给出了值错误 major males for row in recent grads if recent grads Men gt recent grads Women major males append recent grads
  • Python 中“is”运算符的语义是什么?

    如何is运算符确定两个对象是否相同 它是如何工作的 我找不到它的记录 来自文档 http docs python org reference datamodel html 每个对象都有一个身份 一个类型 和一个值 对象的身份 一旦发生就永远
  • 如何在Python中手动对数字列表进行排序?

    规格 Ubuntu 13 04 Python 3 3 1 背景 Python的初学者 遇到了这个 手动排序 问题 我被要求做的事情 让用户输入 3 个数值并将它们存储在 3 个不同的变量中 不使用列表或排序算法 手动将这 3 个数字从小到大
  • argparse 不检查位置参数

    我正在创建一个脚本 它使用 argparse 接受位置参数和可选参数 我已经阅读了 Doug 的教程和 python 文档 但找不到答案 parser argparse ArgumentParser description script t
  • 使用 python 从 CSV 创建字典

    我有一个 CSV 格式的文件 其中 A B 和 C 是标题 我如何以Python方式将此CSV转换为以下形式的字典 A 1 B 4 C 7 A 2 B 5 C 8 A 3 B 6 C 9 到目前为止我正在尝试以下代码 import csv
  • 当元组列表中相同项目的值是字符串时,对它们的值求和

    如果我有这样的元组列表 my list books 5 books 10 ink 20 paper 15 paper 20 paper 15 我怎样才能把列表变成这样 books 15 ink 20 paper 50 即添加同一项目的费用
  • 复制除根节点和属性 XSLT 之外的 XML 文件内容

    我正在处理一个小的 XSLT 文件来复制 XML 文件的内容并删除声明和根节点 根节点具有名称空间属性 我目前正在使用它 除了现在名称空间属性现在被复制到直接子节点之外 这是到目前为止我的 xslt 文件 没什么大或复杂的
  • Python GTK3 Treeview 向上或向下移动选择

    如何在树视图中向上或向下移动所选内容 我的想法是 我可以使用向上和向下按钮将选择向上移动一行或向下移动一行 我的 Treeview 使用 ListStore 不确定这是否重要 首先 我将使用我熟悉的 C 代码 如果您在将其翻译为 Pytho
  • 为什么我无法杀死 k8s pod 中的 python 进程?

    我试图杀死一个 python 进程 ps aux grep python root 1 12 6 2 1 2234740 1332316 Ssl 20 04 19 36 usr bin python3 batch run py root 4
  • 如何将 pandas DataFrame 转换为 TimeSeries?

    我正在寻找一种将 DataFrame 转换为 TimeSeries 而不拆分索引和值列的方法 有任何想法吗 谢谢 In 20 import pandas as pd In 21 import numpy as np In 22 dates
  • 列表中的特定范围(python)

    我有一个从文本字符串中提取的整数列表 因此当我打印该列表 我称之为test I get 135 2256 1984 3985 1991 1023 1999 我想打印或制作一个仅包含特定范围内的数字的新列表 例如1000 2000之间 我尝试
  • 在Python中随机交错2个数组

    假设我有两个数组 a 1 2 3 4 b 5 6 7 8 9 我想将这两个数组交错为变量 c 注意 a 和 b 不一定具有相同的长度 但我不希望它们以确定性的方式交错 简而言之 仅仅压缩这两个数组是不够的 我不想要 c 1 5 2 6 3

随机推荐

  • 初始化列表和移动语义

    我是否可以将元素移出std initializer list
  • 如何在 Subversion 服务器中从 https:// 更改为 svn:// 协议

    更新 svn 和 http 协议基准测试正在 签出项目主干需要多长时间 以分钟和秒为单位 svn 协议 5 32 http 协议 5 33 svn 协议 AVG 文件夹例外 2 22 http 协议 AVG 文件夹例外 2 23 速度结果
  • x64:为什么这段代码给我“地址边界错误”

    为什么以下 x64 程序集给出 地址边界错误 仅当我在之后添加代码时才会发生这种情况call print string 我假设某些寄存器已被修改 但是一旦修改 它们不应该被恢复吗 print string函数返回 我使用的是 Mac OS
  • CSS3 选择器最后一个不属于 X 类的元素

    我正在尝试设置 Y 类中不属于 X 类的最后一个元素的样式 HTML 示例 div class container div class Y div div class Y div div class X Y div div 我都尝试过 Y
  • 找不到权威提供商的元数据

    我已将 Snapchat 的创意套件集成到我的 Android 应用程序中 处理后 我从服务器收到字节数组形式的图像 将其保存到磁盘 然后将文件发送到 Snapchat 的创意套件 如下所示 private fun downloadImag
  • 为什么手动初始化为 null 的原型仍然继承自 Object

    如果我写这个 var o Object create null alert o instanceof Object this is false 这怎么会变成真的 function o o prototype null alert new o
  • 提供对 IBM WebSphere MQ 的匿名访问

    我是新来的IBM WebSphere MQ 我正在运行它docker容器 用户 sampleuser and root 是 的一部分mqm 容器内的组 我能够以 root 用户和 sampleuser 身份从主机访问 MQ 我也在主机中创建
  • 为什么百分比高度在我的 div 上不起作用? [复制]

    这个问题在这里已经有答案了 我有两个高度为90 的div 但是显示不一样 我尝试在它们周围放置一个外部 div 但这没有帮助 此外 在 Firefox Chrome Opera 和 Safari 上也是如此 有人可以解释为什么我遇到这个问题
  • 使用数据触发控制故事板,但只触发一次

    我使用数据触发器来控制一些故事板 但它只能触发一次
  • Java - 同步线程 - 输出顺序错误

    在玩了一年 Java 之后 我正在阅读 Java 完整参考 第 9 版 到目前为止 我对这本书很满意 但我现在在同步线程方面遇到了一个非常奇怪的问题 package syncro class Callme void call String
  • 同时等待具有独立延续的多个异步调用

    在多种情况下 我需要调用多个异步调用 来自同一个事件处理程序 这些调用可以彼此独立地进行 每个调用都有自己的延续来更新 UI 以下简单的实现导致三个异步操作按顺序执行 private async void button Click obje
  • Google 地图 JavaScript API - fitbounds 与 setCenter 一起使用

    我一直在寻找解决这个问题的方法 但我似乎找不到解决这个问题的东西 我得到的最接近的是这个线程 但这行不通 我想做的是基于一组运行良好的标记来运行 fitbounds 但我还想根据用户位置 plunk 中的弹跳标记 将地图居中 并仍将所有标记
  • 打印 pandas 数据框时抑制描述性输出

    假设我有数据框 c a np random random 6 2 c pd DataFrame a c columns A B 打印第 0 行值 print c loc 0 结果是 A 0 220170 B 0 261467 Name 0
  • 如何渲染大量相似的物体?

    我有大量对象 至少 10 000 个粒子 例如三角形 正方形 圆形或球体 实际上现在我有一个对象 我渲染了很多次 它看起来像这样 for int i 0 i
  • android 版 admob 入门 - 对文档感到困惑

    我刚刚开始考虑将 Admob 广告放入我正在构建的 Android 应用程序中 到目前为止 还没有好的结果 我一直在遵循从 adMob 网站下载的 AdMod Android SDK Instructions pdf 中的示例 但感到困惑
  • Android:AsyncTask 的处理程序

    我将 AsyncTask 与 ProgressDialog 结合使用 查看我的代码 我在 onPostExecute 中遇到问题 如果任务是第一次运行 它会在handleMessage 中收到progressDialog 的Null Poi
  • 反转 pandas 中的 get_dummies 编码

    列名称为 ID 1 2 3 4 5 6 7 8 9 col 值为 0 或 1 我的数据框如下所示 ID 1 2 3 4 5 6 7 8 9 1002 0 1 0 1 0 0 0 0 0 1003 0 0 0 0 0 0 0 0 0 1004
  • SignalR(v2.2.0) OnDisconnected 设置用户离线

    我使用以下代码在组中添加用户 并使用以下代码将用户保存在该特定组的数据库中 SERVER public class ChatHub Hub public async Task JoinRoom string user Id string r
  • 将小数转换为任何基数? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我知道 strtoll 但它将任何基数基数 2 到 36 之间 转换为十进制 我需要通过将十进制转换为任何基数基数来执行相反的操作 一个例子是十进制 130 基数 12 AA 以下代
  • 如何在 Python 中根据 DTD 文件验证 xml

    我需要验证 XML 字符串 而不是文件 针对 DTD 描述文件 这怎么能在python 另一个不错的选择是lxml的验证我觉得用起来很愉快 取自 lxml 站点的一个简单示例 from StringIO import StringIO fr