XML 在QT中解析

XML parsing in QT

我是QT新手

我正在开发应用程序来解析 XML 文件。但是文件格式看起来像这样

 <Class name="ABC">
    <LayoutEntry name="ABB"            type="class:ABB"/>
    <LayoutEntry name="ACC"            type="class:ACC"/>
    <LayoutEntry name="ADD"            type="class:ADD"/>
 </Class>

 <Class name="ABB">   //Declared  in class ABC
    <LayoutEntry name="ABB1"            type="class:ABB1"/>
    <LayoutEntry name="ABB2"            type="class:ABB2"/>
  </Class>

  <Class name="ABB1">  //Declared in class ABB
    <LayoutEntry name="ABB1"            value=ABB1"/>
  </Class>

  <Class name="ABB2">
    <LayoutEntry name="ABB2"            value=ABB2"/>
  </Class>

请有人建议我使用 QT 中的任何库或方法来解析这种类型的 XML 。 谢谢

您可以使用 QDomDocument 和所有以 qDom 开头的 class。 这样你就可以得到一个对应于你的文档的对象。 每个标记都是一个 QDomNode,您可以调用 getParam、getChild 或 getParent 等方法。

您可以使用模块 QtXML 5.8, which is part of the Qt-framework. There you can find the class QDomDocument ( QDomDocument-doc ) 例如。

           QDomNodeList list;
           list = document.elementsByTagName("Parent");
           int ChildCount = list.at(0).childNodes().count();
           qDebug() << "ChildCount = " << ChildCount;
           QString child1,child2,child3;
            for(int i=0; i < ChildCount; i++)
            { 
             child1 = list.at(0).childNodes().at(0).toElement().text();
             child2 = list.at(0).childNodes().at(1).toElement().text();
             child3 = list.at(0).childNodes().at(2).toElement().text();
            }