首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pugixml子节点数

pugixml子节点数
EN

Stack Overflow用户
提问于 2013-01-15 09:24:57
回答 3查看 7.1K关注 0票数 14

pugixml节点对象是否有子节点数量方法?我在文档中找不到它,所以不得不使用迭代器,如下所示:

代码语言:javascript
复制
int n = 0;
for (pugi::xml_node ch_node = xMainNode.child("name"); ch_node; ch_node = ch_node.next_sibling("name")) n++;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-15 13:26:01

没有内置的函数可以直接计算;另一种方法是使用std::distance

代码语言:javascript
复制
size_t n = std::distance(xMainNode.children("name").begin(), xMainNode.children("name").end());

当然,这与子节点的数量呈线性关系;请注意,计算所有子节点的数量std::distance(xMainNode.begin(), xMainNode.end())也是线性的--不存在对子节点计数的恒定时间访问。

票数 21
EN

Stack Overflow用户

发布于 2013-01-29 03:09:49

您可以使用基于xpath搜索的表达式(但不能保证效率):

代码语言:javascript
复制
xMainNode.select_nodes( "name" ).size()
票数 3
EN

Stack Overflow用户

发布于 2020-08-30 05:30:52

代码语言:javascript
复制
int children_count(pugi::xml_node node)
{
  int n = 0;
  for (pugi::xml_node child : node.children()) n++;
  return n;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14329738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档