qt中关于xml的一些知识点
2017-08-29 10:25
387 查看
其实对于qt中的xml分为QDomDocument和QXmlStreamReader两个类。
QDomDocument:处理较小的XML文件;
QXmlStreamReader:处理比较大的XML文件;
本文主要讲的是:QDomDocument;
在把数据写入到XML文件中,主要操作包括了:
1.创建根节点:QDomElement root=doc.documentElement(“rootName”);
2.创建元素节点:QDomElement element=doc.createElement(“nodeName”);
3.添加元素节点到根节点:root.appendChild(element);
4.创建元素文本:QDomText nodeText=doc.createTextNode(“text”);
5.添加元素文本到元素节点:element.appendChild(nodeText);
说个例子吧:
在读取XML文件,所进行的主要操作:
1.读取根节点:QDomElement root=doc.documentElement();
2.读取第一个子节点:QDomNode node=root.firstChild();
3.读取下一个子节点:node=node.nextSibling();
4.匹配节点标记:node.toElement().tagName()==”note”
5.读取节点文本:no=childNode.toText().data();
说个例子:
删除XML节点文件的时候,主要用到的函数为:root.removeChild(node);
QDomDocument:处理较小的XML文件;
QXmlStreamReader:处理比较大的XML文件;
本文主要讲的是:QDomDocument;
在把数据写入到XML文件中,主要操作包括了:
1.创建根节点:QDomElement root=doc.documentElement(“rootName”);
2.创建元素节点:QDomElement element=doc.createElement(“nodeName”);
3.添加元素节点到根节点:root.appendChild(element);
4.创建元素文本:QDomText nodeText=doc.createTextNode(“text”);
5.添加元素文本到元素节点:element.appendChild(nodeText);
说个例子吧:
QDomDocument doc; QDomProcessingInstruction instruction=doc.createProcessingInstruction("xml","version=\"1.0\"encoding=\"UTF-8\""); doc.appendChild(instruction); QDomElement root=doc.createElement("Notes"); doc.appendChild(root); QDomElement note=doc.createElement("note"); root.appendChild(note); QDomElement no=doc.createElement("no"); note.appendChild(no); QDomText no_text=doc.createTextNode("001"); no.appendChild(no_text); QFile file("test.xml"); if(!file.open(QIODevice::WriteOnly)|QIODevice::Truncate|QIODevice::Text)) return; QTextStream out(&file); out.setCodec("UTF-8"); doc.save(out,4,QDomNode::EncodingFromTextStream); file.close(); 下面是编译完之后形成的XML文件: <?xml version="1.0" encoding="UTF-8"?> <Notes> <note> <no>001</no> </note> </Notes>
在读取XML文件,所进行的主要操作:
1.读取根节点:QDomElement root=doc.documentElement();
2.读取第一个子节点:QDomNode node=root.firstChild();
3.读取下一个子节点:node=node.nextSibling();
4.匹配节点标记:node.toElement().tagName()==”note”
5.读取节点文本:no=childNode.toText().data();
说个例子:
void MainWindow::parseAttr(const QDomElement &element) { QDomNode node=element.firstChild(); while(!node.isNull()) { if(node.toElement().tagName()=="note") { parseAttr(node.toElement()); } else if(node.toElement().tagName()=="no") { QDomNode childNode=node.firstChild(); if(childNode.nodeType()==QDomNode::TextNode) { no=childNode.toText().data(); } } else if(node.toElement().tagName()=="name") node=node.nextSibling(); } }
删除XML节点文件的时候,主要用到的函数为:root.removeChild(node);
相关文章推荐
- qt中xml的一些补充知识点
- 关于HTML你可能不知道的一些知识点
- 关于xml与dom的一些概念
- 关于XML解析的一些代码
- IOS开发基础—关于uikit框架里面uiview类的一些知识点
- 关于Qt的一些好网站
- 关于xml中控件属性的一些tip
- 自己关于java的一些知识点的笔记
- 关于使用QTcpSocket的一些总结
- QT中关于QString的一些小结
- 关于xml的知识点
- c#4.0 Other XML Technologies(一些XML的知识点)
- 关于WCF的一些知识点
- 比较小的一些知识点一(关于菜单的创建和资源文件的创建)
- 关于手写hibernate hbm.xml文件的一些心得
- 关于ARC需要了解的一些基本知识点
- 关于Qt一些问题的解答
- 关于面向构件和EOS的一些思考-xml和元数据解决了接口脆弱性问题吗?
- 关于数组的一些知识点和API
- JS数组的介绍及创建以及一些关于数组的知识点