首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QDomDocument到QDomElement转换

QDomDocument到QDomElement转换
EN

Stack Overflow用户
提问于 2014-02-13 19:57:19
回答 1查看 757关注 0票数 3

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

代码语言:javascript
复制
<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>

所以我就用

代码语言:javascript
复制
QDomElement element = doc.toElement();

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-13 22:06:11

如评论中所述,使用QDomNode::toElement()不起作用,因为文档本身在技术上不是一个元素。使用QDomDocument::documentElement()来获取根元素。

QDomDocument文档包括以下使用示例:

代码语言:javascript
复制
// 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();
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21764264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档