QDomImplementation 类提供 DOM (文档对象模型) 实现特征的有关信息。 更多...
头: | #include <QDomImplementation> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS Xml)
target_link_libraries(mytarget PRIVATE Qt6::Xml) |
qmake: | QT += xml |
注意: 此类的所有函数 可重入 除以下外:
enum | InvalidDataPolicy { AcceptInvalidChars, DropInvalidChars, ReturnNullNode } |
QDomImplementation () | |
QDomImplementation (const QDomImplementation & x ) | |
~QDomImplementation () | |
QDomDocument | createDocument (const QString & nsURI , const QString & qName , const QDomDocumentType & doctype ) |
QDomDocumentType | createDocumentType (const QString & qName , const QString & publicId , const QString & systemId ) |
bool | hasFeature (const QString & feature , const QString & version ) const |
bool | isNull () |
bool | operator!= (const QDomImplementation & x ) const |
QDomImplementation & | operator= (const QDomImplementation & x ) |
bool | operator== (const QDomImplementation & x ) const |
QDomImplementation::InvalidDataPolicy | invalidDataPolicy () |
void | setInvalidDataPolicy (QDomImplementation::InvalidDataPolicy policy ) |
此类描述由 DOM 实现所支持的特征。目前支持 DOM 级别 1 和 DOM 级别 2 核心 XML 子集。
通常,使用函数 QDomDocument::implementation () 能获取实现对象。
可以创建新的文档类型采用 createDocumentType () 和新的文档采用 createDocument ().
有关文档对象模型的进一步信息,见 级别 1 and 级别 2 核心 。有关 DOM 实现的更一般介绍,见 QDomDocument 文档编制。
QDom 类有一些不符合 XML 规范的问题,Qt 4 无法在不破坏向后兼容性的情况下修复这些问题。Qt XML 模式模块和 QXmlStreamReader and QXmlStreamWriter 类拥有更高一致性。
另请参阅 hasFeature ().
此枚举指定应做什么,当工厂函数在 QDomDocument 被调用采用无效数据。
常量 | 值 | 描述 |
---|---|---|
QDomImplementation::AcceptInvalidChars
|
0
|
无论如何,都应将数据存储在 DOM 对象中。在此情况下,可能导致 XML 文档不是格式良好的。这是默认值且是 Qt < 4.1 的 QDom 行为。 |
QDomImplementation::DropInvalidChars
|
1
|
应从数据移除无效字符。 |
QDomImplementation::ReturnNullNode
|
2
|
工厂函数应返回 null 节点。 |
另请参阅 setInvalidDataPolicy () 和 invalidDataPolicy ().
构造 QDomImplementation 对象。
构造副本为 x .
[noexcept]
QDomImplementation::
~QDomImplementation
()
销毁对象并释放其资源。
创建的 DOM (文档对象模型) 文档具有文档类型 doctype 。此函数还添加根元素节点采用合格名称 qName 和名称空间 URI nsURI .
创建文档类型节点按名称 qName .
publicId 指定外部子集的公共标识符。若指定空字符串 QString() 作为 publicId ,这意味着文档类型没有公共标识符。
systemId 指定外部子集的系统标识符。若指定空字符串作为 systemId ,这意味着文档类型没有系统标识符。
由于没有系统标识符就无法拥有公共标识符,所以公共标识符被设为空字符串若没有系统标识符。
DOM 级别 2 不支持任何其它文档类型声明特征。
可以使用这种方式创建的文档类型的唯一办法,是组合 createDocument () 函数以创建 QDomDocument 采用此文档类型。
按 DOM 规范,这是创建非 null 文档的唯一方式。由于历史原因,Qt 还允许使用默认空构造函数创建文档。结果文档为 null,但使用工厂函数时会变为非 null,例如 QDomDocument::createElement () 的调用。文档也将变为非 null,当调用 setContent() 时。
另请参阅 createDocument ().
函数返回
true
若 QDom 实现请求
version
的
feature
;否则返回
false
.
目前支持的特征及其版本:
特征 | 版本 |
---|---|
XML | 1.0 |
[static]
QDomImplementation::InvalidDataPolicy
QDomImplementation::
invalidDataPolicy
()
返回指定应该做什么的无效数据策略,当工厂函数在 QDomDocument 被传递无效数据。
警告: 此函数不 可重入 .
另请参阅 setInvalidDataPolicy () 和 InvalidDataPolicy .
返回
false
若对象创建通过
QDomDocument::implementation
();否则返回
true
.
[static]
void
QDomImplementation::
setInvalidDataPolicy
(
QDomImplementation::InvalidDataPolicy
policy
)
设置指定应该做什么的无效数据策略,当工厂函数在 QDomDocument 被传递无效数据。
The policy 的设置是为所有实例化的 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 .
返回
true
if
x
和此 DOM 实现对象的创建是从不同 QDomDocument;否则返回
false
.
赋值 x 到此 DOM (文档对象模型) 实现。
返回
true
if
x
和此 DOM 实现对象的创建是从同一
QDomDocument
;否则返回
false
.