gpt4 book ai didi

qt - QDomDocument 到 QDomElement 的转换

转载 作者:行者123 更新时间:2023-12-05 01:47:48 24 4
gpt4 key购买 nike

我有 xmpp iq,我从 QByteArray 加载到 QDomDocument,但我需要它作为 QDomElement

<iq from='users.netlab.cz' to='test_soc@jabbim.sk/QXmpp' id='search0' type='result'>
<query xmlns='jabber:iq:search'>
<instructions>You need an x:data capable client to search</instructions>
<x xmlns='jabber:x:data' type='form'>
<title>Search users in users.netlab.cz</title>
<instructions>blahblah</instructions>
<field type='text-single' label='User' var='user'/>
...
<field type='text-single' label='Organization Unit' var='orgunit'/>
</x>
</query>
</iq>

所以我只是用

QDomElement element = doc.toElement();

但是它没有返回任何数据,我对 xml 不是很熟悉所以我不确定这是否正确。任何人都可以告诉我如何将此文档转换为元素,或者它是否能够以某种方式直接将数据从 QByteArray 加载到 QDomElement?

最佳答案

As mentioned in the comments ,使用 QDomNode::toElement() 不起作用,因为文档本身在技术上不是元素。使用 QDomDocument::documentElement() 获取根元素。

The QDomDocument documentation包括这个使用示例:

// print out the element names of all elements that are direct children
// of the outermost element.
QDomElement docElem = doc.documentElement();

QDomNode n = docElem.firstChild();
while(!n.isNull()) {
QDomElement e = n.toElement(); // try to convert the node to an element.
if(!e.isNull()) {
cout << qPrintable(e.tagName()) << endl; // the node really is an element.
}
n = n.nextSibling();
}

关于qt - QDomDocument 到 QDomElement 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21764264/

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