如何使用pugixml提取子数据
How to extract child data with pugixml?
我正在尝试使用pugixml从大型XML文件中提取数据。我只对节点 BAR 和 Nm 中的值感兴趣:
<Document xmlns="xxxxxx" xmlns:xsi="vvvvvvv">
<Outer>
<HDR>
<MsgId>FOOBAR222222</MsgId>
<ID>
<AAAAA>FOOBAR222222</AAAAA>
</ID>
</HDR>
<ENTRY>
<Status>existing</Status>
<ELEM>
<TM>2012-11-19T13:00:00</TM>
</ELEM>
<FOO>
<BAR>xxxxx</BAR>
<NM>
<Nm>yyyyyyy</Nm>
</NM>
</FOO>
</ENTRY>
从我所看到的,可以遍历根文档,但是,我在访问父节点和子节点时有点迷茫:
void walk(xml_node parent)
{
for(xml_node child = parent.first_child(); child; child = child.next_sibling())
{
// ... Would like to output: "FOO: xxxx / NM: yyyyyyyy"
}
}
您可以为 first_child()
和其他成员函数提供参数:
auto Outer = document.first_child("OUTER");
auto Entry = Outer.first_child("ENTRY");
auto Foo = Entry.first_child("FOO");
等。
最终到达目标时,请使用 .value()
获取节点值。
PugiXML还具有XPath支持,但在这种情况下,这可能是矫枉过正。
Pugi也有一个简单的路径设施5.10。其他函数
您只需一行即可完成上述操作:
document.first_element_by_path("/Document/Outer/ENTRY/FOO/BAR").first_child().value();
相关文章:
- 使用从文件(stod、strtod、atof)中提取的数据C++从字符串转换为双精度.csv
- 模式匹配文本并提取C++中的数据
- JPG-如何从ICC配置文件部分APP2读取/提取数据
- 如何从多维向量中提取数据
- 从异构列表中提取数据
- 是否可以将多个结构作为一个数据包存储在一个函数中,然后传递给其他函数并在那里提取?
- 从 Windows 中的其他应用程序 GUI 中提取数据
- 如何从 qwebengineview qt5.9 中提取数据
- 将文本文件数据读入字符数组时提取运算符的歧义
- 如何从shared_ptr<T&>的引用中提取数据
- 从自定义结构数组中提取数据
- 需要根据读取的数据类型将ifstream提取到单独的数组中
- 从第 x 列提取到 y 列,从第 1 行到第 2 行提取 csv 数据 c++
- 无法从结构数组 C++ 中提取数据
- 如何解决系统.Zip.TZipFile.ExtractAll无法从.zip文件中提取所有数据的问题
- 提取肮脏的RGB像素缓冲区数据Directx
- STL矢量数据提取
- 将文件中的逐行数据提取到C++中的动态数组中
- 提升精神 X3:将数据提取到 x3::变体<...> 始终为空
- Web数据提取和表单填写