4

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

任何想法?谢谢!

4

4 回答 4

10

没有用于将 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;
}
于 2011-08-12T23:52:45.033 回答
0

好吧,我也遇到过类似的情况,在这种情况下,我最好的选择是利用QDomDocumentQDomElement是其中的一部分。所以我想说你无法直接访问,QDomElement但你可以使用 QDomDocument 来实现。

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

这是Qt 参考资料

希望这可以帮助。

于 2011-08-12T11:52:17.593 回答
0

使用 QTextStream:

QTextStream lTS(stdout);
lTS << lMyDomElement;
于 2011-08-12T10:41:24.527 回答
0

如果您#include <QDebug>QDebug 将充当 TextStream 本身。即qDebug()<< lMyDomElement;足够了)

于 2011-08-12T10:49:17.607 回答