2017-01-30 6 views
-1

QT를 처음 사용했습니다.QT에서 XML 구문 분석

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> 

어떤 사람이 XML의 유형을 분석하는 QT의 모든 도서관이나 방법에 대해 저를 제안하십시오 것 같습니다. 감사합니다.

답변

0

Qt 프레임 워크의 일부인 모듈 QtXML 5.8을 사용할 수 있습니다. 거기 당신은. 예를 들어 (

+0

QDomDocument-doc)을 클래스 QDomDocument을 찾을 수 있습니다하지만 난 lib 디렉토리뿐만 아니라 Qt3의 일부 QT 3 –

+0

사용하고 있습니다. – KimKulling

0

QDomDocument과 qDom으로 시작하는 모든 클래스를 사용할 수 있습니다. 이렇게하면 문서에 해당하는 객체를 가져올 수 있습니다. 각 마크 업은 QDomNode이며 getParam, getChild 또는 getParent와 같은 메소드를 호출 할 수 있습니다.

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(); 
      }