2013-07-20 2 views
0

주석 처리 된 요소가있는 XML 문서가 있습니다. 이 예제 응용 프로그램에서 해당 항목을 건너 뛸 수 있습니까?QDomDocument의 주석 건너 뛰기

#include <QtGui> 
#include <QtXml> 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 

    QPlainTextEdit editor; 

    QString xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" 
      "<list>" 
      "<item id=\"1\" />" 
      "<item id=\"2\" />" 
      "<!-- <item id=\"3\" /> -->" 
      "<item id=\"4\" />" 
      "</list>"; 

    QDomDocument doc; 
    doc.setContent(xml.toAscii()); 

    QDomElement list = doc.documentElement(); 
    QDomNodeList items = list.childNodes(); 
    for(int x=0; x< items.count(); x++) 
    { 
     QDomElement element = items.at(x).toElement(); 

     if(1) 
     { 
      editor.appendPlainText(QString::number(x)+": "+element.attribute("id")); 
     } 
    } 

    editor.show(); 

    return app.exec(); 
} 

답변

1

QDomNode의 유형을 확인하십시오.

for(int x=0; x< items.count(); x++) 
{ 
    if (items.at(x).isComment()) 
     continue; 

    QDomElement element = items.at(x).toElement(); 
    ... 
} 
+0

나는 당신의 코드를 시험해 보았다. 나는 실수로 items.at (x)가 items.at (x) .toElement()와 동일하다고 생각했습니다! –