QXmlNamespaceSupport 类

QXmlNamespaceSupport 类是一个辅助类,用于支持 XML 读取器中的命名空间支持。 更多...

头文件 #include <QXmlNamespaceSupport>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmakeQT += core5compat

注意: 此类中所有函数都是 重入 的。

公共函数

QXmlNamespaceSupport()
~QXmlNamespaceSupport()
voidpopContext()
QStringprefix(const QString &uri) const
QStringListprefixes() const
QStringListprefixes(const QString &uri) const
voidprocessName(const QString &qname, bool isAttribute, QString &nsuri, QString &localname) const
voidpushContext()
voidreset()
voidsetPrefix(const QString &pre, const QString &uri)
voidsplitName(const QString &qname, QString &prefix, QString &localname) const
QStringuri(const QString &prefix) const

详细描述

您可以使用 setPrefix() 设置当前命名空间的别名,并使用 prefixes() 获取当前别名列表(或给定 URI 的别名列表)。命名空间 URI 可从 uri() 获取。使用 pushContext() 开始新的命名空间上下文,使用 popContext() 返回到前面的命名空间上下文。使用 splitName() 或 processName() 将名称拆分为其别名和本地名称。

成员函数文档

QXmlNamespaceSupport::QXmlNamespaceSupport()

构建一个 QXmlNamespaceSupport。

[noexcept] QXmlNamespaceSupport::~QXmlNamespaceSupport()

销毁一个 QXmlNamespaceSupport

void QXmlNamespaceSupport::popContext()

恢复到之前的命名空间上下文。

通常,您应该在每个 XML 元素的末尾弹出上下文。弹出上下文后,之前生效的所有命名空间前缀映射都将恢复。

另请参阅pushContext

QString QXmlNamespaceSupport::prefix(const QString &uri) const

返回与命名空间URI uri 相关联的一个前缀。

如果当前有多个前缀映射到同一个URI,此函数将进行任意选择;如果您想获取所有前缀,请使用 prefixes()。

注意:要检查默认前缀,请使用 uri() 函数,参数为 ""。

另请参阅 setPrefix()。

QStringList QXmlNamespaceSupport::prefixes() const

返回当前声明的所有前缀列表。

如果有默认前缀,此函数不会在列表中返回它;请使用 uri() 函数并传递 "" 参数来检查默认前缀。

QStringList QXmlNamespaceSupport::prefixes(const QString &uri) const

这是一个重载函数。

返回当前为命名空间URI uri 声明的所有前缀列表。

"xml:" 前缀被包含在内。如果您只想获得一个映射到命名空间URI的前缀,而不关心具体是哪一个,请使用prefix() 函数。

注意:空(默认)前缀从未包含在此列表中;要检查默认命名空间是否存在,请使用 uri() 函数并将 "" 作为参数。

void QXmlNamespaceSupport::processName(const QString &qname, bool isAttribute, QString &nsuri, QString &localname) const

通过移除前缀并在当前已声明的所有前缀中查找,处理当前上下文中的原始XML 1.0名称。

qname 是要处理的原始XML 1.0名称。 isAttribute 为true,如果该名称是属性名称。

此函数将命名空间URI存储在 nsuri 中(如果原始名称有一个未声明的前缀,将设置为空字符串),并将本地名称(不带前缀)存储在 localname 中(如果未使用命名空间,将设置为空字符串)。

请注意,属性名称的处理方式与元素名称不同:未加前缀的元素名称获取默认命名空间(如果有),而未加前缀的属性名称则不获取。

void QXmlNamespaceSupport::pushContext()

启动一个新的命名空间上下文。

通常,您应该在每个XML元素的开始处推送一个新的上下文:新的上下文会自动继承父上下文的声明,并且它还会跟踪在这个上下文中做出了哪些声明。

另请参阅 popContext()。

void QXmlNamespaceSupport::reset()

重置此命名空间支持对象以便重新使用。

void QXmlNamespaceSupport::setPrefix(const QString &pre, const QString &uri)

此函数将当前命名空间上下文中的前缀 pre 声明为命名空间URI uri。该前缀在上下文弹出之前保持有效,除非在子上下文中被阴影。

请注意,该库中存在不对称性。《prefix()》即使已声明前缀也不会返回默认的""前缀;要检查默认前缀,必须显式使用《uri()》来查找。这种不对称性存在是为了在默认前缀不允许的位置更容易查找属性名称的前缀。

另请参阅prefix()》。

void QXmlNamespaceSupport::splitName(const QString &qname, QString &prefix, QString &localname) const

在“:”处拆分名称 qname,并将前缀返回到 prefix,局部名称返回到 localname

另请参阅processName()》。

QString QXmlNamespaceSupport::uri(const QString &prefix) const

在当前上下文中查找前缀 prefix 并返回映射的当前命名空间URI。对于默认命名空间,请使用空字符串("")。

© 2024 Qt有限公司版权所有。所包含的文档贡献拥有其各自所有者的版权。本提供的文档是根据自由软件基金会发布的GNU自由文档许可证第1.3版条款提供的。Qt及其相应标志是Qt有限公司在芬兰以及世界其他国家和地区的商标。所有其他商标均为其各自所有者拥有。