如何在QtXml中调试QDomElement?

时间:2011-08-12 10:23:33

标签: c++ debugging qt qtxml

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

有什么想法吗?谢谢!

4 个答案:

答案 0 :(得分:9)

没有用于将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;
}

答案 1 :(得分:0)

使用QTextStream:

QTextStream lTS(stdout);
lTS << lMyDomElement;

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我也遇到过类似的情况,在这种情况下,我最好的办法就是利用QDomDocument所属的QDomElement。所以我会说你无法直接访问QDomElement,但你可以使用QDomDocument实现这一点。

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

这是Qt reference

希望这有帮助。