В качестве альтернативы вы можете получить полный контроль над сериализацией и использовать либо QXmlSerializer
, либо QXmlFormatter
. Таким образом, вы будете иметь в выводе все, что просите, а не некоторые значения по умолчанию, которые вам предоставляются. В нем будет больше кода, это правда, но намерение будет более ясным, чем просто отбрасывание некоторого символа новой строки в конце.
Вот пример того, как это сделать с QXmlSerializer
(который по умолчанию не создает избыточных символов):
#include <QCoreApplication>
#include <QXmlQuery>
#include <QXmlSerializer>
#include <QString>
#include <QBuffer>
#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)");
QBuffer buffer;
buffer.open(QBuffer::ReadWrite);
QXmlSerializer serializer(query, &buffer);
if (query.evaluateTo(&serializer))
{
QString queryResult = QString::fromUtf8(buffer.buffer());
qDebug() << queryResult;
qDebug() << queryResult.size();
}
}