QT如何读xml节点,如何获取节点属性?
这个实例讲了,QT中怎么去获取xml节点的value值,怎么去获取节点属性的值,并且还讲解了怎么直接读xml格式的内容,和怎么直接读xml文件。这个实例应该会帮助到大部分的初学者。
下面这段代码是获取xml节点,和获取节点属性。
//m_returnPostData 这个是xml格式的值,获取到的,QByteArray类型。
//dom.documentElement();//读取根节点
//docElem.firstChild();//读取第一个子节点
//e.tagName():获取节点名称
//e.text()获取节点value
//e.attribute ("en"):获取节点内属性为“en”的值
//nextSibling():获取下一个兄弟节点
QDomDocument dom;
//读取xml格式的值
dom.setContent(m_returnPostData);
//或者读取xml文件
QFile file("/usr/local/ui.xml");
if (!file.open(QIODevice::ReadOnly))
return;
if (!doc.setContent(&file))
{
file.close();
return;
}
file.close();
QDomElement docElem = dom.documentElement();
QDomNode n = docElem.firstChild();
while (!n.isNull())
{
QDomElement e = n.toElement();
if (!e.isNull())
{
hash.insert(qPrintable(e.tagName()), qPrintable(e.text()));
if( e.attribute ("en") != "")
{
QString nName = e.nodeName()+"_en";
hash.insert(qPrintable(nName), qPrintable(e.attribute ("en")));
}
}
n = n.nextSibling();
}
其他的一些函数:
lastChild():获得最后一个节点
childNodes():获取该节点的所有孩子节点的一个列表
previousSibling():获取前一个兄弟节点.