Qt学习之路——Read XML with DOM

September 22nd, 2013 by JasonLe's Tech Leave a reply »

接着昨天的来讲写XML来讲,最大的问题就是要分清root与children节点。要知道你是在哪个节点操作的,是子节点还是父节点。
然后配合使用API来解析就可以了。我们要知道Tag就是<>中的属性。attribute就是属性值。
部分xml如下图:

<Books>
<Book Name="My Book 0" ID="0">
<Chapter Name="Chapter 0" ID="0"/>
<Chapter Name="Chapter 1" ID="1"/>
<Chapter Name="Chapter 2" ID="2"/>
<Chapter Name="Chapter 3" ID="3"/>
<Chapter Name="Chapter 4" ID="4"/>
</Book>
..............

我们如果要读入这个xml文件,那么我们要确定他的root tagname 与attribute

void ListElements(QDomElement root,QString tagname,QString attribute)
{
    QDomNodeList items = root.elementsByTagName(tagname);
    qDebug() << "Total items = " << items.count();

    for(int i=0;i<items.count();i++)
    {
        QDomNode itemnode = items.at(i);

        if(itemnode.isElement())
        {
            QDomElement itemele =itemnode.toElement();
            qDebug() << itemele.attribute(attribute);
        }
    }
}//这个就是将每个root下面的tagname attribute打印出来。

2013-09-22 21:18:56的屏幕截图