c++ - 跳过 QDomDocument 中的注释

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

最佳答案

通过检查 QDomNode 的类型。

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

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

关于c++ - 跳过 QDomDocument 中的注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17761163/

相关文章:

python - scrapy从xml文件读取起始url,该url有 "&"

c++ - 如何在QLabel中为QImage设置缩进?

c++ - 未在基类模板中声明成员

c - 发送带有 XML 内容的 POST http 请求

java - 无法解析具有不同命名空间的 XML

qt - QWebView和嵌入式YouTube播放器-无法正常工作

c++ - 断开来自两个未被销毁/删除的 QObject 的信号的正确方法

c++ - 使用正则表达式替换匹配项

c++ - 如何启用_if 具有可变模板参数的类?

c++ - Makefile 无法找到 *.o 文件来生成 .exe