【问题标题】:How to read GPX file ( xml format) in QT?如何在 QT 中读取 GPX 文件(xml 格式)?
【发布时间】:2014-01-09 08:25:32
【问题描述】:

我有一个 gpx 文件,基本上就是一个 xml 文件。我想从中读取纬度和经度值。下面我发布了示例 gpx 文件。

    <gpx>
    <wpt lon="80.0124" lat="13.125">
    </wpt>
    <wpt lon="80.0130" lat="13.124">
    </wpt>
    <wpt lon="80.0145" lat="13.122">
    </wpt>
    <wpt lon="80.0120" lat="13.121">
    </wpt>
    </gpx>

我需要获取纬度和经度的浮点值。感谢您提供任何帮助和建议。

谢谢。我可以得到不带双引号的结果吗?

【问题讨论】:

    标签: c++ qt qtcore qfile qxmlstreamreader


    【解决方案1】:

    这里的关键类是QXmlStreamReader

    请参阅下面的代码以使其工作。

    test.xml

    <gpx>
    <wpt lon="80.0124" lat="13.125">
    </wpt>
    <wpt lon="80.0130" lat="13.124">
    </wpt>
    <wpt lon="80.0145" lat="13.122">
    </wpt>
    <wpt lon="80.0120" lat="13.121">
    </wpt>
    </gpx>
    

    main.cpp

    #include <QXmlStreamReader>
    #include <QDebug>
    #include <QString>
    #include <QFile>
    
    int main()
    {
        QFile file("test.xml");
        if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
            qDebug() << "File open error:" << file.errorString();
            return 1;
        }
        QXmlStreamReader inputStream(&file);
        while (!inputStream.atEnd() && !inputStream.hasError())
        {
            inputStream.readNext();
            if (inputStream.isStartElement()) {
                QString name = inputStream.name().toString();
                if (name == "wpt")
                    qDebug() << "lon:" << inputStream.attributes().value("lon").toFloat() << "lat:" << inputStream.attributes().value("lat").toFloat();
            }
        }
        return 0;
    }
    

    main.pro

    TEMPLATE = app
    TARGET = main
    QT = core
    SOURCES += main.cpp
    

    构建并运行

    qmake && make && ./main
    

    输出

    lon: 80.0124 lat: 13.125 
    lon: 80.013 lat: 13.124 
    lon: 80.0145 lat: 13.122 
    lon: 80.012 lat: 13.121
    

    【讨论】:

    • 感谢您的帮助。我可以得到没有双引号的结果吗?
    猜你喜欢
    • 2021-11-18
    • 1970-01-01
    • 2017-01-28
    • 2017-08-13
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多