QT 官方例程阅读: XML Patterns 相关

标签用于在qt creator 中查询相关工程

一、标签 Schema Validator 模式验证器

就是根据 已知的XML 模式,验证输入的XML 文件格式是否匹配,不匹配可以输出不匹配位置

如下,,首先定义了contact 元素 的子元素列表,,匹配文件中title 并没有定义,所以报错

复制代码
    // 核心代码   
    MessageHandler messageHandler; //自定义消息结构,用于接受验证器异常的输出

    QXmlSchema schema; //源模式
    schema.setMessageHandler(&messageHandler);

    schema.load(schemaData);

    bool errorOccurred = false;
    if (!schema.isValid()) {
        errorOccurred = true;
    } else {
        QXmlSchemaValidator validator(schema); //验证器
        if (!validator.validate(instanceData))
            errorOccurred = true;
    }

    if (errorOccurred) {
        validationStatus->setText(messageHandler.statusMessage()); //输入异常
        
    } else {
        validationStatus->setText(tr("validation successful"));
    }

二、标签 Recipes XML

Using Qt XML Patterns to query XML data loaded from a file

理解为 输入查询条件和输出格式,从源文件中查找匹配项并根据格式输出

复制代码
    QFile sourceDocument; //输入文件
    sourceDocument.setFileName(":/files/cookbook.xml");
    sourceDocument.open(QIODevice::ReadOnly);

    QByteArray outArray; //查询输出缓存
    QBuffer buffer(&outArray);
    buffer.open(QIODevice::ReadWrite);

    QXmlQuery query; 
    //绑定变量,理解为将输入文件绑定到查询字符串中的变量inputDocument
    query.bindVariable("inputDocument", &sourceDocument); 
    query.setQuery(str);
    if (!query.isValid())//执行
        return;

    QXmlFormatter formatter(query, &buffer); //将查询到的结果按格式输出到buffer
    if (!query.evaluateTo(&formatter)) //执行
        return;

三、标签 File patterns system xml

Using Qt XML Patterns for querying non-XML data that is modeled to look like XML.

也是用 QXmlQuery 去查询非XML 数据,然后输入XML 格式的数据

相关推荐
Quz9 小时前
QML Hello World 入门示例
qt
xcyxiner3 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner4 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner4 天前
DicomViewer (添加模型类)3
qt
xcyxiner5 天前
DicomViewer (目录调整) 2
qt
xcyxiner5 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
桥田智能7 天前
桥田智能 QT-650S:面向白车身焊装的 800kg 重载快换解决方案
开发语言·qt·系统架构
森G7 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
森G7 天前
77、线程池原理和实现------服务器源码解析----云视频服务项目
服务器·c++·qt
森G7 天前
71、打包发布---------打包发布
c++·qt