pugixml - 遍历特定节点
pugixml - iterating over specific nodes
我有一个 xml 文档,其中的节点有子节点,但我想遍历名称存储在数组中的特定节点,例如:
const char* childrenNodes[]={"childNodeA", "childNodeC", "childNodeK"};
我可以使用 next_sibling
函数,该函数将上述数组的元素作为参数。你知道如何使用 pugixml 实现这样的循环吗?
next_sibling
有两个覆盖
xml_node next_sibling() const;
xml_node next_sibling(const char_t* name) const;
您正在专注于第二个。而是使用第一个不带参数的,然后只检查节点名称是否在数组中
pugi::xml_node node = root.first_child();
for (; node; node = node.next_sibling()
{
if (std::find(std::begin(childrenNodes), std::end(childrenNodes), node.name()) != std::end(childrenNodes))
{
// ...
}
}
我有一个 xml 文档,其中的节点有子节点,但我想遍历名称存储在数组中的特定节点,例如:
const char* childrenNodes[]={"childNodeA", "childNodeC", "childNodeK"};
我可以使用 next_sibling
函数,该函数将上述数组的元素作为参数。你知道如何使用 pugixml 实现这样的循环吗?
next_sibling
有两个覆盖
xml_node next_sibling() const;
xml_node next_sibling(const char_t* name) const;
您正在专注于第二个。而是使用第一个不带参数的,然后只检查节点名称是否在数组中
pugi::xml_node node = root.first_child();
for (; node; node = node.next_sibling()
{
if (std::find(std::begin(childrenNodes), std::end(childrenNodes), node.name()) != std::end(childrenNodes))
{
// ...
}
}