首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何读取QT中的GPX文件( xml格式)?

如何读取QT中的GPX文件( xml格式)?
EN

Stack Overflow用户
提问于 2014-01-09 08:25:32
回答 1查看 2.3K关注 0票数 1

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

代码语言:javascript
运行
复制
    <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>

我需要得到纬度和经度的浮动值。如有任何帮助和建议,我们将不胜感激。

谢谢。没有双引号我能得到结果吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-09 08:45:50

这里的关键类是QXmlStreamReader

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

test.xml

代码语言:javascript
运行
复制
<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

代码语言:javascript
运行
复制
#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

代码语言:javascript
运行
复制
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp

构建和运行

代码语言:javascript
运行
复制
qmake && make && ./main

输出

代码语言:javascript
运行
复制
lon: 80.0124 lat: 13.125 
lon: 80.013 lat: 13.124 
lon: 80.0145 lat: 13.122 
lon: 80.012 lat: 13.121
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21015039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档