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))
    {
        // ...
    }
}