pugixml 不生成任何输出
pugixml generates no output
我尝试使用 pugixml 将 .xml 文件读入我的 C++ 程序。
问题是,即使是第一个例子也行不通。
我的 .xml 看起来像这样:
<?xml version='1.0' encoding='UTF-8'?>
<trk>
<name bahn="Bahn 1"/>
<trkseg>
<trkpt lat="48.0815471" lon="11.2745363">
</trkpt>
<trkpt lat="48.0815471" lon="11.2745363">
</trkpt>
</trkseg>
</trk>
<trk>
<name bahn ="Bahn 2"/>
<trkseg>
<trkpt lat="48.08161089580602" lon="11.274945462810345">
</trkpt>
<trkpt lat="48.08161089580602" lon="11.274945462810345">
</trkpt>
</trkseg>
</trk>
我尝试使用
加载文档
pugi::xml_document doc;
pugi::xml_parse_result result = doc.load_file("kreisel_argelsriederfeld.xml");
std::cout<<"Load result: " << result.description()<<", mesh name"<< doc.child("name").attribute("bahn").value()<<std::endl;
pugi::xml_node bahnen = doc.child("trkseg");
std::cout << bahnen.value()<<std::endl;
虽然当我调用它时,输出达到 ", mesh name"
,之后只显示空 space。我的错误在哪里?是因为我叫错名字之类的吗?由于 "Load result" 我得到 "No Error",所以应该加载文件,不是吗?我找到了几个示例和教程,但它们都使用这个来加载文件。
文件无效 XML(只允许一个顶级 <trk>
元素)。看到这个 pugixml error handling example。
如果你想拥有多个 <trk>
它们需要包装在一个顶级 <trks>
元素中。
编辑:遗漏了没有错误的部分。也许 pugixml 在这里是宽容的,真正的问题是 <trk>
被认为是文档节点的子节点。所以,而不是 doc.child("name")
尝试 doc.child("trk").child("name")
.
我尝试使用 pugixml 将 .xml 文件读入我的 C++ 程序。 问题是,即使是第一个例子也行不通。
我的 .xml 看起来像这样:
<?xml version='1.0' encoding='UTF-8'?>
<trk>
<name bahn="Bahn 1"/>
<trkseg>
<trkpt lat="48.0815471" lon="11.2745363">
</trkpt>
<trkpt lat="48.0815471" lon="11.2745363">
</trkpt>
</trkseg>
</trk>
<trk>
<name bahn ="Bahn 2"/>
<trkseg>
<trkpt lat="48.08161089580602" lon="11.274945462810345">
</trkpt>
<trkpt lat="48.08161089580602" lon="11.274945462810345">
</trkpt>
</trkseg>
</trk>
我尝试使用
加载文档pugi::xml_document doc;
pugi::xml_parse_result result = doc.load_file("kreisel_argelsriederfeld.xml");
std::cout<<"Load result: " << result.description()<<", mesh name"<< doc.child("name").attribute("bahn").value()<<std::endl;
pugi::xml_node bahnen = doc.child("trkseg");
std::cout << bahnen.value()<<std::endl;
虽然当我调用它时,输出达到 ", mesh name"
,之后只显示空 space。我的错误在哪里?是因为我叫错名字之类的吗?由于 "Load result" 我得到 "No Error",所以应该加载文件,不是吗?我找到了几个示例和教程,但它们都使用这个来加载文件。
文件无效 XML(只允许一个顶级 <trk>
元素)。看到这个 pugixml error handling example。
如果你想拥有多个 <trk>
它们需要包装在一个顶级 <trks>
元素中。
编辑:遗漏了没有错误的部分。也许 pugixml 在这里是宽容的,真正的问题是 <trk>
被认为是文档节点的子节点。所以,而不是 doc.child("name")
尝试 doc.child("trk").child("name")
.