pugixml 节点对象是否有子节点数方法?我在文档中找不到它,不得不使用迭代器,如下所示:
int n = 0;
for (pugi::xml_node ch_node = xMainNode.child("name"); ch_node; ch_node = ch_node.next_sibling("name")) n++;
最佳答案
没有内置函数可以直接计算;另一种方法是使用 std::distance
:
size_t n = std::distance(xMainNode.children("name").begin(), xMainNode.children("name").end());
当然,这与子节点的数量呈线性关系;注意计算所有子节点的数量,
std::distance(xMainNode.begin(), xMainNode.end())
, 也是线性的 - 没有对子节点计数的恒定时间访问。
关于xml-parsing - pugixml 子节点数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14329738/