【发布时间】:2011-08-12 10:23:33
【问题描述】:
我有一个 QDomElement,我想对其进行调试,即在调试控制台中将其视为纯文本。为了使用 qDebug() 输出它,它需要是 QString 格式,但是我没有看到来自 QDomElement 或 QDomNode 的任何转换方法。
有什么想法吗?谢谢!
【问题讨论】:
我有一个 QDomElement,我想对其进行调试,即在调试控制台中将其视为纯文本。为了使用 qDebug() 输出它,它需要是 QString 格式,但是我没有看到来自 QDomElement 或 QDomNode 的任何转换方法。
有什么想法吗?谢谢!
【问题讨论】:
没有用于将 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;
}
【讨论】:
使用 QTextStream:
QTextStream lTS(stdout);
lTS << lMyDomElement;
【讨论】:
如果你 #include <QDebug> QDebug 将充当 TextStream 本身。
即qDebug()<< lMyDomElement; 就足够了)
【讨论】:
好吧,我也遇到过类似的情况,在这种情况下,我最好的选择是使用QDomDocument,QDomElement 是其中的一部分。所以我想说您无法直接访问QDomElement,但您可以使用QDomDocument 来实现。
为此,您需要确保您的 QDomDocument 使用最近的 QDomElement 进行更新,然后使用 QDomDocument::toString() 将整个文档作为 QString 返回给您。
这里是Qt reference。
希望这会有所帮助。
【讨论】: