一个使用QtXmlPatterns模块读取xml 的例子
一个使用QtXmlPatterns模块读取xml 的例子
一个使用QtXmlPatterns模块读取xml 的例子:
- #include <QApplication>
- #include <QFile>
- #include <QBuffer>
- #include <QIODevice>
- #include <QtXmlPatterns>
- #include <QXmlFormatter>
- #include <QLabel>
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
- QFile sourceDocument;
- sourceDocument.setFileName("cookbook.xml");
- sourceDocument.open(QIODevice::ReadOnly);
- QXmlQuery query;
- query.bindVariable("inputDocument", &sourceDocument);
- //之所以要将绑定 inputDocument 变量,估计是为了把需要查询的 xml 文件设置为可读模式,然后才能 setQuery 查询。
- query.setQuery("(: Select all recipes. :)/ndeclare variable $inputDocument external; /ndoc($inputDocument)/cookbook/recipe/<p>{string(title)}</p>/n");
- QByteArray outArray;
- QBuffer buffer(&outArray);
- buffer.open(QIODevice::ReadWrite);
- QXmlFormatter formatter(query, &buffer);
- query.evaluateTo(&formatter);
- if (query.evaluateTo(&formatter))
- {
- buffer.close();
- QLabel *label = new QLabel(QString::fromUtf8(outArray.constData()));
- label->show();
- }
- sourceDocument.close();
- return app.exec();
- }
评论暂时关闭