class QDomImplementation#

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

概述#

方法#

静态函数#

说明

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

详细描述#

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

通常,您将使用函数 implementation() 获取实现对象。

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

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

由于Qt 4无法在不破坏向后兼容性的情况下修复与XML规范的几个不一致问题,QDom类存在这些问题。Qt XML模式模块和QXmlStreamReader和QXmlStreamWriter类具有更高程度的一致性。

另请参阅

hasFeature()

class InvalidDataPolicy#

此枚举指定在调用QDomDocument的工厂函数时遇到无效数据时应该执行什么操作。

常量

描述

QDomImplementation.AcceptInvalidChars

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

QDomImplementation.DropInvalidChars

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

QDomImplementation.ReturnNullNode

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

__init__()#

构造一个 QDomImplementation 对象。

__init__(arg__1)
参数::

arg__1QDomImplementation

创建一个 x 的副本。

createDocument(nsURI, qName, doctype)#
参数::
  • nsURI – 字符串(str)

  • qName – 字符串(str)

  • doctypeQDomDocumentType

返回类型::

QDomDocument

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

createDocumentType(qName, publicId, systemId)#
参数::
  • qName – 字符串(str)

  • publicId – 字符串(str)

  • systemId – 字符串(str)

返回类型::

QDomDocumentType

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

publicId 指定了外部子集的公共标识符。如果您将 publicId 作为空字符串(QString())指定,这表示该文档类型没有公共标识符。

systemId 指定了外部子集的系统标识符。如果您将 systemId 作为空字符串指定,这表示该文档类型没有系统标识符。

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

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

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

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

另请参阅

createDocument()

hasFeature(feature, version)#
参数::
  • feature – 字符串(str)

  • version – 字符串(str)

返回类型::

布尔值(bool)

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

当前支持的特征及其版本

特征

版本

XML

1.0

static invalidDataPolicy()#
返回类型::

InvalidDataPolicy

返回无效数据策略,指定当将无效数据传递到QDomDocument的工厂函数时应做什么。

isNull()#
返回类型::

布尔值(bool)

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

__ne__(arg__1)#
参数::

arg__1QDomImplementation

返回类型::

布尔值(bool)

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

__eq__(arg__1)#
参数::

arg__1QDomImplementation

返回类型::

布尔值(bool)

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

static setInvalidDataPolicy(policy)#
参数::

策略InvalidDataPolicy

警告

本节包含自动从C++转换为Python的代码片段,可能包含错误。

设置无效数据策略,指定当将无效数据传递到QDomDocument的工厂函数时应做什么。

为所有已存在和未来创建的 QDomDocument 实例设置了 policy

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