如何使用pugixml读取节点
How to read through nodes using pugixml?
我刚刚下载了pugixml库,我正试图使其适应我的需要。它主要是面向DOM风格,我不使用。我存储的数据如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<profile>
<points>
<point>
<index>0</index>
<x>0</x>
<y>50</y>
</point>
<point>
<index>1</index>
<x>2</x>
<y>49.9583</y>
</point>
<point>
<index>2</index>
<x>12</x>
<y>50.3083</y>
</point>
</points>
</profile>
Pugixml指南说:
将数据存储为某些节点的文本内容是很常见的。这是一个节点。在这种情况下,Node没有值,而是有的子节点输入node_pcdata,值为"这是一个节点"。pugixml提供Child_value()和text()帮助函数解析这些数据。
但是我使用这些方法有问题,我没有得到节点值。
#include "pugixml.hpp"
#include <string.h>
#include <iostream>
int main()
{
pugi::xml_document doc;
if (!doc.load_file("/home/lukasz/Programy/eclipse_linux_projects/xmlTest/Debug/pidtest.xml"))
return -1;
pugi::xml_node points = doc.child("profile").child("points");
for (pugi::xml_node point = points.first_child(); point; point = points.next_sibling())
{
// ?
}
return 0;
}
如何读取索引,x和y值里面的for?
有几种方法,在快速入门页面中有说明:
- http://pugixml.org/docs/samples/traverse_iter.cpp
- http://pugixml.org/docs/samples/traverse_rangefor.cpp
- 有一个用于电源作业的树访问者http://pugixml.org/docs/samples/traverse_walker.cpp
我可以推荐Xpath吗?
#include <pugixml.hpp>
#include <iostream>
int main()
{
pugi::xml_document doc;
if (doc.load_file("input.txt")) {
for (auto point : doc.select_nodes("//profile/points/point")) {
point.node().print(std::cout, "", pugi::format_raw);
std::cout << "n";
}
}
}
打印
<point><index>0</index><x>0</x><y>50</y></point>
<point><index>1</index><x>2</x><y>49.9583</y></point>
<point><index>2</index><x>12</x><y>50.3083</y></point>
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 反向给定链表中的K节点
- 使用新行和不使用新行读取文件
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- 读取文件并输入到矢量中
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 如何在Visual C+++中从JSON文件中读取节点数据
- 从 open62541Client 读取节点的UA_Arguments
- 使用 Broadcast 发出的从节点服务器发送的数据不能被 C++ 套接字 IO 客户端读取
- 尝试从单向链表C++中删除单个节点时出现读取访问冲突
- 当我通过删除临时节点来释放内存时,我会得到读取访问违规行为.但是只有当我返回错误语句时
- 读取图形可视化的点文件,而无需在提升图中存储节点 ID
- 读取文件".txt"并将每行的数据分配给循环列表中的新节点C++
- 堆与读取Map最左边节点的相对性能
- 试图读取快速XML中的节点导致错误
- 程序不读取和添加节点到2双链表c++
- c++链表——如何读取而不重复到相同的节点
- 如何使用pugixml读取节点
- 使用RapidXML读取XML节点