欢迎来到天天文库
浏览记录
ID:6032690
大小:50.50 KB
页数:7页
时间:2017-12-31
《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.01616、tus>trueCZ-5_FAtopLeft我们可以先获取switch节点,然后得到其childNodes(),于是就可以使用at()方法来获取下面的每个节点了(注:从0开始)比如说,上面的那个ip节点就是nodeswitch.childNodes().at(3)。这样做得好处就是不用担心重复的问题,只要你确定switch节点确定对了,底下的也就一定能确定了。3返回某个节点下子节点的个数这个简单,也是直接调APIQD7、omElementdocElem=_qDomDoc.documentElement();QDomNodenodetagname=docElem.elementsByTagName(tagname).at(0);//假设有多个tagname此处选第一个intnum=nodetagname.childNodes().size();好了,临时想起来就这么多。以后想起来再添。 //================================================================================================
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();好了,临时想起来就这么多。以后想起来再添。 //================================================================================================
此文档下载收益归作者所有