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 格式的数据

相关推荐
沫璃染墨14 小时前
《Qt从零入门系列(十三):QSS样式表详解——从选择器与层叠规则到控件美化实战》
开发语言·css·c++·qt·ui·qt6.3·qss
好好学习O(∩_∩)O18 小时前
[QT] 多线程moveToThread 和易踩的8个坑
开发语言·qt
北i20 小时前
Dubbo 默认超时重试:把下游打雪崩的隐形放大器
开发语言·qt·dubbo
扶尔魔ocy1 天前
【qt openGL入门笔记】OSG实现显示飞机模型飞行的点迹(二)
qt·opengl·osg
Python图像识别1 天前
43-【2027毕设】YOLO11暴力检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
bug和崩溃我都要1 天前
QT 开发的专业截图录屏工具 - macOS版 / Windows版
windows·qt·mac·录屏·截屏
Python图像识别2 天前
40-【2027毕设】YOLO11面部口罩检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
Python图像识别2 天前
39-【2027毕设】YOLO11行人摔倒检测系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
Quz2 天前
QML PathView:直线路径与曲线路径
qt·动画·qml
扶尔魔ocy2 天前
【qt openGL入门笔记】OSG实现飞机模型在网格图上飞行
qt·opengl·osg