大家好,欢迎来到IT知识分享网。
1、XML基础
1.1、XML是什么?
XML是一种可扩展标记语言,很类似于HTML,其文件仅仅是纯文本而已;
XML的设计宗旨是传输数据,而非显示数据;
1.2、XML语法
XML文档形成了一棵“倒挂的树结构”,从“根部”开始,然后扩展到“枝叶”;
XML标签一定是成对出现的,必须有根元素;
XML标签大小写敏感,标签和属性都没有预定义,所以可以自行取标签名;
XML的属性值需加引号,单、双都可,如果属性值中包含双引号,则使用单引号或实体引用,尽量不使用属性;
XML注释:<!– This is a comment –>;
XML中,空格会被保留;
XML命名规则:名称可以含字母、数字以及其他字符,但是不能以数字或标点符号开始,且不能包含空格;
XML文档标准格式:
<? xml version="1.0" encoding="UTF-8" ?> <!-- 说明版本号和编码格式 -->
<root> <!-- 根元素 -->
<child> <!-- 儿子元素 -->
<sub_child> <!-- 孙子元素 -->
...
</sub_child>
</child>
</root>
检验XML文档格式是否正确:最简单的办法就是用浏览器打开,如果能看到内容,则说明没有问题;反之则有问题。
2、Qt解析XML
2.1、编写XML文件
2.2、导入xml模块
2.3、使用QXmlStreamReader读取XML
QT开发交流君羊:714620761
void MainWindow::on_pushButton_clicked()
{
QFile file(QCoreApplication::applicationDirPath() + "/test.xml");
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QXmlStreamReader reader(&file);
while(!reader.atEnd()) { //如果没有读到最后一行,就一行行往下读
if(reader.isStartElement()){ //如果标签是起始标签
if(reader.name() == "person"){ //如果标签名是person
QXmlStreamAttributes attributes = reader.attributes(); //获取该标签的所有属性
if(attributes.hasAttribute("id")){ //如果有“id”属性
ui->textEdit->append("person: "+attributes.value("id").toString()); //获取“id”属性的值
}
}
if(reader.name() == "name"){ //如果标签名是“name”
ui->textEdit->append("name: "+reader.readElementText()); //读取标签文本
}
if(reader.name() == "sex"){ //如果标签名是“sex”
ui->textEdit->append("sex: "+reader.readElementText()); //读取标签文本
}
if(reader.name() == "age"){ //如果标签名是“age”
ui->textEdit->append("age: "+reader.readElementText()); //读取标签文本
}
}
else if(reader.isEndElement() && reader.name() == "person"){ //如果标签是结束标签并且标签名是person
ui->textEdit->append("----------------------------------------");
}
reader.readNext();
}
file.close();
}
2.4、效果展示
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/61525.html