qt读写xml资料[dom方式]

qt读写xml资料[dom方式]

ID:6032690

大小:50.50 KB

页数:7页

时间:2017-12-31

qt读写xml资料[dom方式]_第1页
qt读写xml资料[dom方式]_第2页
qt读写xml资料[dom方式]_第3页
qt读写xml资料[dom方式]_第4页
qt读写xml资料[dom方式]_第5页
资源描述:

《qt读写xml资料[dom方式]》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、qt读写XML资料[DOM方式]我们可以看到,如果所要读取的XML文件不是很大,采用DOM读取方法还是很便捷的,由于我用的也是DOM树读取的方法,所以,本文所介绍的也主要是基于DOM的方法读取。根据常用的操作,我简单的把对XML的操作分为以下几类:1首先对XML文件进行操作,打开文件。这个其实就是对文件进行操作,可以把它直接定义为构造函数,在对对象进行初始化时完成。TopoDataReader::TopoDataReader(constwstring&filePath):_filePath(filePath),_qDomDoc("mydocument"),_qFil

2、e(QString::fromStdWString(filePath)){ if(!_qFile.open(QIODevice::ReadOnly)) {  return; } if(!_qDomDoc.setContent(&_qFile)) {  _qFile.close();  return; }}2读取XML文件中的节点内容假设XML文件格式如下(1)(2)211.87.235.136对于第一种情况,采

3、用如下方法:QDomElementdocElem=_qDomDoc.documentElement();QDomNodenodeswitch=docElem.elementsByTagName("switch");//红色的为标签名QDomElementelemnodeswitch=nodeswitch.toElement();stringsnmpip=qPrintable(elemnodeswitch.attribute("snmpip"));//network的也是如此方法获取对于第二种情况,采用如下方法:直接调用text()API就可以了stringip=qP

4、rintable(elementnodeip.text());但是,假设文件中有多个同样的节点,如下这样用elementsByTagName("b")返回的就是一个childNodes()而不是一个单独的node了。我们可以使用at()方法具体定位。另外,我们还可以使用这样一种方法获取节点的值,假设XML文件如下-+前端主交换机-192.168.120.2

5、51public@120truetruetrue050.050.0161

6、tus>trueCZ-5_FAtopLeft我们可以先获取switch节点,然后得到其childNodes(),于是就可以使用at()方法来获取下面的每个节点了(注:从0开始)比如说,上面的那个ip节点就是nodeswitch.childNodes().at(3)。这样做得好处就是不用担心重复的问题,只要你确定switch节点确定对了,底下的也就一定能确定了。3返回某个节点下子节点的个数这个简单,也是直接调APIQD

7、omElementdocElem=_qDomDoc.documentElement();QDomNodenodetagname=docElem.elementsByTagName(tagname).at(0);//假设有多个tagname此处选第一个intnum=nodetagname.childNodes().size();好了,临时想起来就这么多。以后想起来再添。 //================================================================================================

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。