QDomImplementation 类

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

头文件 #include <QDomImplementation>
CMakefind_package(Qt6 REQUIRED COMPONENTS Xml)
target_link_libraries(mytarget PRIVATE Qt6::Xml)
qmakeQT += xml

注意:此类中所有函数都是可重入的,以下函数除外

公共类型

枚举InvalidDataPolicy { AcceptInvalidChars, DropInvalidChars, ReturnNullNode }

公共函数

QDomImplementation()
QDomImplementation(const QDomImplementation &x)
~QDomImplementation()
QDomDocumentcreateDocument(const QString &nsURI, const QString &qName, const QDomDocumentType &doctype)
QDomDocumentTypecreateDocumentType(const QString &qName, const QString &publicId, const QString &systemId)
boolhasFeature(const QString &feature, const QString &version) const
boolisNull()
booloperator!=(const QDomImplementation &x) const
QDomImplementation &operator=(const QDomImplementation &x)
booloperator==(const QDomImplementation &x) const

静态公共成员

QDomImplementation::InvalidDataPolicyinvalidDataPolicy()
voidsetInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)

详细描述

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

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

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

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

QDom类与XML规范存在一些不兼容问题,这些问题的修正将导致与Qt 4的向下不兼容。Qt XML模式模块以及QXmlStreamReaderQXmlStreamWriter类在兼容性上有一个更高的程度。

另请参阅 hasFeature()。

成员类型文档

enum QDomImplementation::InvalidDataPolicy

此枚举定义了在QDomDocument中的工厂函数被调用时,遇到无效数据应该采取的措施。

常量描述
QDomImplementation::AcceptInvalidChars0即使如此,也应在DOM对象中存储数据。在这种情况下,生成的XML文档可能格式不好。这是默认值,且在Qt < 4.1中的QDom行为。
QDomImplementation::DropInvalidChars1应从数据中删除无效字符。
QDomImplementation::ReturnNullNode2工厂函数应返回一个空节点。

另请参阅 setInvalidDataPolicy()和invalidDataPolicy

成员函数文档

QDomImplementation::QDomImplementation()

生成一个QDomImplementation对象。

QDomImplementation::QDomImplementation(const QDomImplementation &x)

创建一个的副本。

[不支持异常]QDomImplementation::~QDomImplementation()

销毁对象并释放其资源。

QDomDocument QDomImplementation::createDocument(const QString &nsURI, const QString &qName, const QDomDocumentType &doctype)

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

QDomDocumentType QDomImplementation::createDocumentType(const QString &qName, const QString &publicId, const QString &systemId)

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

publicId指定了外部部分的公共标识符。如果您指定一个空的字符串(QString())作为publicId,这意味着文档类型没有公共标识符。

systemId指定了外部部分的系统标识符。如果您指定一个空字符串作为systemId,这意味着文档类型没有系统标识符。

由于没有系统标识符您不能有公共标识符,在没有系统标识符的情况下,公共标识符被设置为空字符串。

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

您只能通过使用此方法创建的文档类型与createDocument()函数结合,来创建具有此文档类型的QDomDocument

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

另请参阅createDocument()。

bool QDomImplementation::hasFeature(const QString &feature, const QString &version) const

该函数返回 inhabitants 是否实现了请求的 版本功能;否则返回 false

当前支持的功能及其版本

功能版本
XML1.0

[静态] QDomImplementation::InvalidDataPolicy QDomImplementation::invalidDataPolicy()

返回无效数据策略,指定在将无效数据传递给QDomDocument中的工厂函数时应该执行的操作。

警告:此函数不是可重入的

另请参阅setInvalidDataPolicy() 和 InvalidDataPolicy

bool QDomImplementation::isNull()

如果没有通过 QDomDocument::implementation() 创建对象,则返回 false;否则返回 true

[静态] void QDomImplementation::setInvalidDataPolicy(QDomImplementation::InvalidDataPolicy policy)

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

策略将适用于所有已存在的QDomDocument实例以及将来创建的实例。

void XML_snippet_main()
{
QDomDocument doc;
QDomImplementation impl;
// 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);
QDomElement elt1 = doc.createElement("foo~bar");

// This will create an element with the tag name "foobar".
impl.setInvalidDataPolicy(QDomImplementation::DropInvalidChars);
QDomElement elt2 = doc.createElement("foo~bar");

// This will create a null element.
impl.setInvalidDataPolicy(QDomImplementation::ReturnNullNode);
QDomElement elt3 = doc.createElement("foo~bar");
}

警告:此函数不是可重入的

另请参阅invalidDataPolicy() 和 InvalidDataPolicy

bool QDomImplementation::operator!=(const QDomImplementation &x) const

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

QDomImplementation &QDomImplementation::operator=(const QDomImplementation &x)

x 分配给这个DOM实现。

bool QDomImplementation::operator==(const QDomImplementation &x) const

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

© 2024 The Qt Company Ltd. 本文件中包含的文档贡献是各自所有者的版权。本文件提供的文档是根据自由软件基金会发布的GNU自由文档许可协议(FDL)1.3版许可的使用。Qt及其相关标志是The Qt Company Ltd.在芬兰以及世界其他国家的商标。所有其他商标均为其各自所有者所有。