ticpp以相反的顺序遍历节点

时间:2013-01-05 12:12:31

标签: c++ xml-parsing iterator

我正在使用ticpp来轻松处理xml文件。然而,迭代器接口使用起来有点尴尬。我是否正确假设无法以相反的顺序遍历某个父级的子级? (documentation

迭代器接口确实有operator--()。但是,在“end”迭代器上调用它会导致“访问冲突读取位置0x00000000”。我错过了什么吗?有没有一种快速处理方法?

我目前想到的解决方案是简单地遍历列表两次:首先将所有子项存储在std::array中(数组最好在这里?)然后再按相反的顺序检查所有元素。但正如所说:我不禁想到我一定错过了一些功能......

1 个答案:

答案 0 :(得分:0)

原来我错过了一些东西;而不是使用ticpp提供的迭代器接口,我也可以使用tixml中基于节点的接口。 (ticpp只是一个抽象层)。

以下循环允许的功能很少:

for(ticpp::Node* pchild(elem.LastChild()); 
    pchild != nullptr; 
    pchild = pchild->PreviousSibling(false)) {