可能从QXmlStreamWriter获得QDomElement
Possible to get QDomElement from QXmlStreamWriter?
我正在使用qxmpp编写一个小型XMPP服务器。现在我想创建一个QXmppStanza,并使用
将其呈现给服务器和我的插件(就好像客户端已经发送了它一样)。void QXmppServer::handleElement(const QDomElement &element)
这个函数需要QDomElement而不是QXmppStanza。我在QXmppStanza及其派生类(除了parse(…))中发现的唯一与XML相关的函数是函数
void toXml(QXmlStreamWriter *writer)
我没有在qt XML处理的经验,所以有一个更高效的方式比写XML字符串/ByteArray,使用它作为输入来创建一个新的QDomElement和返回它的documentElement?
在做了一些进一步的研究之后,我不得不接受这是不可能的。
正如QDomDocument的文档中所述,我总是需要一个QDomDocument才能与QDomElement(和其他节点)一起工作:
由于元素、文本节点、注释、处理指令等不能存在于文档的上下文之外(…)
QXmlStreamWriter没有QDomDocument,所以我真的必须创建一个QDomDocument(当然,只要我想与元素一起工作),然后解析文本(QDomDocument::setContent)。
我有一个类似的问题,并且能够通过执行类似于下面所示的操作将流转换为DOM元素。
第一步是流到字节数组。
QByteArray data;
QXmlStreamWriter writer(&data);
object->toXml(&writer);
第二步是设置DOM文档的内容。文档的document元素应该是您需要的DOM元素。
QDomDocument temp;
if(temp.setContent(data))
QDomElement element = temp.documentElement(); // do whatever you want with this element
相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- 如何从C++中的依赖类型中获得它所依赖的类型
- 欧拉项目#8答案是大以获得有效答案
- 如何使用C/C++在MacOSX中获得键盘布局
- 如何在不产生任何垃圾的情况下获得C中的像素
- 有没有一种方法可以在编译时获得作用域类名
- 如何在C++中获得"静态纯虚拟"功能?
- 如何设置一个范围来提取我想要获得的信息
- 在多次运行中获得一致的callgrind输出
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 如何在Directwrite中获得给定字体的可用OpenType功能
- 在我的代码中,获得最大的Pair Wise产品C++和输出并不总是正确的
- 当用户在qtablewidget中输入单元格时,如何获得信号?C++
- 未获得字符串中的预期输出
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- Qt:当QListView获得新条目时,如何更新QStringList
- 如何在卷曲中获得卷曲/卷曲.h?
- 如何在创建自定义迭代器时获得 std::p air 的第一个和第二个?
- 当我输入字符类型的数字时,为什么我无法获得整数?
- 可能从QXmlStreamWriter获得QDomElement