-1

私はxmlが初めてです。openstreetmaps から取得した xml ファイルを読み込もうとしています。次のように見えます

<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="CGImap 0.0.2">
 <bounds minlat="48.3994690" minlon="9.9897780" maxlat="48.3998220" maxlon="9.9898260"/>
 <node id="149248718" lat="48.3994984" lon="9.9897961" user="Matthias Frank" uid="287306" visible="true" version="7" changeset="7966729" timestamp="2011-04-25T18:01:43Z"/>
 <node id="1831376336" lat="48.3995041" lon="9.9898087" user="NUP" uid="168758" visible="true" version="1" changeset="12345652" timestamp="2012-07-19T20:02:51Z"/>
 <node id="1831376346" lat="48.3995599" lon="9.9902392" user="NUP" uid="168758" visible="true" version="1" changeset="12345652" timestamp="2012-07-19T20:02:52Z"/>
 <node id="1831376331" lat="48.3993243" lon="9.9898198" user="NUP" uid="168758" visible="true" version="1" changeset="12345652" timestamp="2012-07-19T20:02:51Z"/>
 <node id="1831376349" lat="48.3996127" lon="9.9906471" user="NUP" uid="168758" visible="true" version="1" changeset="12345652" timestamp="2012-07-19T20:02:52Z"/>
 <node id="1831376348" lat="48.3996044" lon="9.9910549" user="NUP" uid="168758" visible="true" version="1" changeset="12345652" timestamp="2012-07-19T20:02:52Z"/>
 <node id="1831376418" lat="48.4000685" lon="9.9897909" user="NUP" uid="168758" visible="true" version="1" changeset="12345652" timestamp="2012-07-19T20:02:55Z"/>
 <node id="1831376350" lat="48.3996158" lon="9.9908451" user="NUP" uid="168758" visible="true" version="1" changeset="12345652" timestamp="2012-07-19T20:02:52Z"/>
 <node id="1831376374" lat="48.3999450" lon="9.9897917" user="NUP" uid="168758" visible="true" version="1" changeset="12345652" timestamp="2012-07-19T20:02:54Z"/>
 <way id="172207897" user="NUP" uid="168758" visible="true" version="1" changeset="12345652" timestamp="2012-07-19T20:02:59Z">
  <nd ref="1831376348"/>
  <nd ref="1831376350"/>
  <nd ref="1831376349"/>
  <nd ref="1831376346"/>
  <nd ref="1831376336"/>
  <tag k="bicycle" v="yes"/>
  <tag k="highway" v="living_street"/>
  <tag k="name" v="Hintere Rebengasse"/>
  <tag k="oneway" v="yes"/>
 </way>
 <way id="172207928" user="NUP" uid="168758" visible="true" version="1" changeset="12345652" timestamp="2012-07-19T20:03:01Z">
  <nd ref="1831376331"/>
  <nd ref="1831376336"/>
  <nd ref="1831376374"/>
  <nd ref="1831376418"/>
  <tag k="bicycle" v="yes"/>
  <tag k="highway" v="living_street"/>
  <tag k="name" v="Pfauengasse"/>
  <tag k="oneway" v="yes"/>
 </way>
</osm>

たとえば、ノードからデータを読み取る最も簡単で最短の方法は何ですか。ID、緯度、経度を読み取りたいのですが、各ノードについてもその情報を保存したいのです。「方法」としての要素についても、それに添付されている ref および「タグ」要素を読み取りたい。

単純な fstream を使用していますが、最も効率的な方法ではないようです。

助けてください

4

2 に答える 2

1

車輪を再び発明する代わりに、XML パーサーを使用できますし、使用する必要があります。

http://lars.ruoff.free.fr/xmlcpp/

軽量の解析には、通常 RapidXml を使用します。高速で使いやすい (少なくとも私の観点からは)

于 2012-08-02T16:12:05.063 に答える
0

XML 解析ライブラリを使用する必要があります。どちらかはあなた次第です。現在、tinyxml を検討していますが、まだ使用していないため、推奨できません。ただし、プロジェクトに組み込むのは非常に簡単に見えます。

于 2012-08-02T16:11:09.890 に答える