编写一些代码来从 XML 中提取一些值,XPath 的结果似乎添加\n
内容之后。
#include <QCoreApplication>
#include <QXmlQuery>
#include <QString>
#include <QDebug>
auto main(int argn, char* argc[])->int
{
QCoreApplication app(argn, argc);
QString replyContent="<Root isOk='ok'/>";
QXmlQuery query;
query.setFocus(replyContent);
query.setQuery("string(//@isOk)");
// Attribute seem to add \n
QString queryResult;
if (query.evaluateTo(&queryResult))
{
qDebug() << queryResult; // Where this \n come from?
qDebug() << queryResult.size(); // Why 3? shouldn't be 2?
}
}
预期结果:
"ok"
2
给出的结果:
"ok\n"
3
这显然有一些我想避免的副作用。
为什么是这样\n
添加?以及如何解决呢?
I think这是由QXmlFormatter
将结果序列化为QString
;我怀疑QXmlFormatter::endDocument
写一个换行符。
一种解决方法是输出到字符串列表,然后选择第一个元素:
QStringList results;
if (query.evaluateTo(&results))
{
const QString& queryResult = results.first();
qDebug() << queryResult;
qDebug() << queryResult.size();
}
您可能会选择join()
如果您需要全部结果,则可以使用结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)