C++ 如何调试QtXml中的QdomeElement?

C++ 如何调试QtXml中的QdomeElement?,c++,debugging,qt,qtxml,C++,Debugging,Qt,Qtxml,我有一个QdomeElement,我想调试它,即在调试控制台中将其视为纯文本。为了使用qDebug()输出它,它需要采用QString格式,但是我没有看到来自QdomeElement或QDomNode的任何转换方法 有什么想法吗?谢谢 使用QTextStream: QTextStream lTS(stdout); lTS << lMyDomElement; QTextStream lTS(stdout); lTS如果您#includeQDebug将充当文本流本身。 i、 e.qDe

我有一个QdomeElement,我想调试它,即在调试控制台中将其视为纯文本。为了使用qDebug()输出它,它需要采用QString格式,但是我没有看到来自QdomeElement或QDomNode的任何转换方法

有什么想法吗?谢谢

使用QTextStream:

QTextStream lTS(stdout);
lTS << lMyDomElement;
QTextStream lTS(stdout);
lTS如果您
#include
QDebug将充当文本流本身。
i、 e.
qDebug()我也遇到过类似的情况,在这种情况下,我的最佳选择是使用
QDomDocument
,它是
qdomeElement
的一部分。因此我想说,您无法直接访问
qdomeElement
,但您可以使用qdom文档实现这一点

为此,您需要确保使用最新的
QDomElement
更新您的
QDomDocument
,然后使用
QDomDocument::toString()
将整个文档作为QString返回给您

这是你的电话号码


希望这有帮助。

没有内置的操作符可以将DOM元素流式传输到QDebug。你可以很容易地写一个,比如:

QDebug operator<<(QDebug dbg, const QDomNode& node)
{
  QString s;
  QTextStream str(&s, QIODevice::WriteOnly);
  node.save(str, 2);
  dbg << qPrintable(s);
  return dbg;
}

QDebug实际操作,不使用我的配置(gcc4.2,Qt 4.6.3)。这就是我的问题。也许隐式转换没有被发现?也许加上正确的(丑陋的)演员阵容?好吧。。。那么你的初始版本就更好了。这是一个策略,但是应该选择更简单的,IMHO。无论如何,谢谢。只是编辑了您的答案,以便QDebug用作参考,以便仅使用QDebug上的正向声明进行声明。你的回答完全符合我的问题,所以我将选择你的答案而不是我的。谢谢