gpt4 book ai didi

c++ - QDomNode namespace 检测的错误工作

转载 作者:行者123 更新时间:2023-11-30 02:50:24 25 4
gpt4 key购买 nike

我正在研究 MIME 类型检测器,需要根据 namespace 和根标记名称拆分各种 XML 文件。我正在为 XML 使用 Qt DOM API:QDomDocumentQDomNodeQDomElement 等。我的测试 xml(非常简单):

<?xml version = '1.0' encoding = 'KOI8-R'?>
<root xmlns="http://www.w3.org/1999/xhtml">
</root>

我的 C++/Qt 代码用于加载 XML 并理解它的命名空间和根标记:

// _d is QIODevice object, XML data source
QDomDocument doc;
if (!doc.setContent (_d))
{
qWarning () << "QDomDocument::setContent has failed on file";
_d->close ();
continue;
}

QDomElement root_item = doc.documentElement ();
qDebug () << "Namespace URI:" << root_item.namespaceURI () << root_item.localName () << root_item.prefix ();

在输出中我只得到三个空字符串,包括命名空间一。但我期望 "http://www.w3.org/1999/xhtml"。我做错了什么吗?

附言root_item.tagName() 按预期显示 root,即 XML 文件已正确解析。

最佳答案

大声笑,我只需要添加 doc.setContent (_d, true),其中第二个参数启用命名空间处理。希望这对其他人有用。

关于c++ - QDomNode namespace 检测的错误工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20468089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com