QT에서 GPX 파일 (XML 형식)을 읽는 방법은 무엇입니까?
-
21-12-2019 - |
문제
기본적으로 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>
.
나는 위도와 경도의 부유물 가치를 얻을 필요가 있습니다.도움과 제안은 인정 받고 있습니다.
고맙습니다.그 결과를 큰 따옴표없이 얻을 수 있습니까?
해결책
여기서 열쇠 클래스는 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
. 제휴하지 않습니다 StackOverflow