python - 在 python 中使用 minidom 设置 DTD

标签 python xml dtd minidom

我正在尝试使用 minidom 在我的 XML 文档中包含对 DTD 的引用。

我正在创建这样的文档:

doc = Document()
foo = doc.createElement('foo')
doc.appendChild(foo)
doc.toxml()

这给了我:

<?xml version="1.0" ?>
<foo/>

我需要得到类似的东西:

<?xml version="1.0" ?>
<!DOCTYPE something SYSTEM "http://www.path.to.my.dtd.com/my.dtd">
<foo/>

最佳答案

文档已过时。使用消息来源,卢克。我是这样做的。

from xml.dom.minidom import DOMImplementation

imp = DOMImplementation()
doctype = imp.createDocumentType(
    qualifiedName='foo',
    publicId='', 
    systemId='http://www.path.to.my.dtd.com/my.dtd',
)
doc = imp.createDocument(None, 'foo', doctype)
doc.toxml()

这将打印以下内容。

<?xml version="1.0" ?><!DOCTYPE foo  SYSTEM \'http://www.path.to.my.dtd.com/my.dtd\'><foo/>

注意根元素是如何由 createDocument() 自动创建的。此外,您的“某物”已更改为“foo”:DTD 需要包含根元素名称本身。

关于python - 在 python 中使用 minidom 设置 DTD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2337285/

相关文章:

android - 水平弯曲滑动菜单

xml - 使用 Notepad++ 进行内部 DTD 验证

XML:如何将一个 xml 文件的内容加载到另一个文件中

python - 将 DataFrame 转换为字典的字典

python - 将 tf.keras.utils.image_dataset_from_directory 与标签列表一起使用

php - 在 PHP 中处理大型 XML 的最佳方式

php - php xpath xml解析循环仅显示第一个条目

xml - XML 属性可以有空格吗?

python - Paramiko:连接到 Cisco C2960 切换器时无法重新使用 ssh session

python - 在Windows 7(64位)中安装pykml Python模块