跳过QDomDocument中的注释

时间:2013-07-20 10:17:39

标签: c++ xml qt qt4

我有一个XML文档,其中包含已注释掉的元素。如何在此示例应用程序中跳过该项?

#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 个答案:

答案 0 :(得分:1)

通过检查QDomNode的类型。

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

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