PySide6.QtXml.QDomImplementation

class QDomImplementation

QDomImplementation 类提供了关于 DOM 实现功能的信息。更多

概要

方法

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

此类描述了DOM实现所支持的功能。目前支持DOM Level 1和DOM Level 2 Core的XML子集。

通常你会使用函数 implementation() 来获取实现对象。

你可以使用createDocumentType()创建一个新的文档类型,并使用createDocument()创建一个新的文档。

有关文档对象模型的更多信息,请参阅Level 1Level 2 Core。有关DOM实现的更一般介绍,请参阅QDomDocument文档。

QDom类在与XML规范的符合性方面存在一些问题,这些问题在Qt 4中无法在不破坏向后兼容性的情况下修复。Qt XML Patterns模块以及QXmlStreamReader和QXmlStreamWriter类具有更高的符合性。

另请参阅

hasFeature()

class InvalidDataPolicy

此枚举指定当使用无效数据调用QDomDocument中的工厂函数时应执行的操作。

常量

描述

QDomImplementation.AcceptInvalidChars

数据应该仍然存储在DOM对象中。在这种情况下,生成的XML文档可能不是格式良好的。这是默认值,也是QDom在Qt < 4.1中的行为。

QDomImplementation.DropInvalidChars

应从数据中删除无效字符。

QDomImplementation.ReturnNullNode

工厂函数应返回一个空节点。

__init__()

构造一个QDomImplementation对象。

__init__(implementation)
Parameters:

实现QDomImplementation

构造一个implementation的副本。

createDocument(nsURI, qName, doctype)
Parameters:
Return type:

QDomDocument

创建一个带有文档类型 doctype 的 DOM 文档。此函数还添加了一个具有限定名称 qName 和命名空间 URI nsURI 的根元素节点。

createDocumentType(qName, publicId, systemId)
Parameters:
  • qName – str

  • publicId – str

  • systemId – str

Return type:

QDomDocumentType

为名称 qName 创建一个文档类型节点。

publicId 指定外部子集的公共标识符。如果将空字符串(QString())指定为 publicId,这意味着文档类型没有公共标识符。

systemId 指定外部子集的系统标识符。如果将空字符串指定为 systemId,这意味着文档类型没有系统标识符。

由于没有系统标识符就不能有公共标识符,如果没有系统标识符,公共标识符将被设置为空字符串。

DOM 级别 2 不支持任何其他文档类型声明功能。

唯一可以使用以这种方式创建的文档类型的方法,是与createDocument()函数结合使用,以创建具有此文档类型的QDomDocument

在DOM规范中,这是创建非空文档的唯一方法。由于历史原因,Qt也允许使用默认的空构造函数创建文档。生成的文档是空的,但当调用工厂函数时,例如createElement(),文档将变为非空。当调用setContent()时,文档也会变为非空。

另请参阅

createDocument()

hasFeature(feature, version)
Parameters:
  • feature – str

  • version – str

Return type:

布尔

如果QDom实现了请求的version版本的feature,则函数返回true;否则返回false

当前支持的功能及其版本:

功能

版本

XML

1.0

static invalidDataPolicy()
Return type:

InvalidDataPolicy

返回无效数据策略,该策略指定当QDomDocument中的工厂函数传递无效数据时应采取的措施。

isNull()
Return type:

布尔

如果对象是由implementation()创建的,则返回false;否则返回true

__ne__(other)
Parameters:

其他QDomImplementation

Return type:

布尔

如果other和此DOM实现对象是从不同的QDomDocuments创建的,则返回true;否则返回false

__eq__(other)
Parameters:

其他QDomImplementation

Return type:

布尔

如果 other 和此 DOM 实现对象是从同一个 QDomDocument 创建的,则返回 true;否则返回 false

static setInvalidDataPolicy(policy)
Parameters:

策略InvalidDataPolicy

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

设置无效数据策略,该策略指定当QDomDocument中的工厂函数传递无效数据时应执行的操作。

policy 是为所有已经存在和将来创建的 QDomDocument 实例设置的。

def XML_snippet_main():

doc = QDomDocument()
impl = QDomImplementation()
# This will create the element, but the resulting XML document will
# be invalid, because '~' is not a valid character in a tag name.
impl.setInvalidDataPolicy(QDomImplementation.AcceptInvalidChars)
elt1 = doc.createElement("foo~bar")
# This will create an element with the tag name "foobar".
impl.setInvalidDataPolicy(QDomImplementation.DropInvalidChars)
elt2 = doc.createElement("foo~bar")
# This will create a null element.
impl.setInvalidDataPolicy(QDomImplementation.ReturnNullNode)
elt3 = doc.createElement("foo~bar")