-1

我是 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。谢谢

4

3 回答 3

0

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

于 2017-01-30T13:02:21.940 回答
0

您可以使用模块QtXML 5.8,它是 Qt 框架的一部分。例如,您可以在那里找到类 QDomDocument ( QDomDocument-doc )

于 2017-01-30T13:03:12.140 回答
0
           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();
            }
于 2017-07-17T09:19:55.487 回答