list<shared_ptr<cxml::Node> >
cxml::Node::node_children (string name) const
{
- /* XXX: using find / get_path should work here, but I can't follow
- how get_path works.
- */
-
- xmlpp::Node::NodeList c = _node->get_children ();
+ xmlpp::NodeSet c = _node->find (name);
list<shared_ptr<cxml::Node> > n;
- for (xmlpp::Node::NodeList::iterator i = c.begin (); i != c.end(); ++i) {
- if ((*i)->get_name() == name) {
- n.push_back (shared_ptr<Node> (new Node (*i)));
- }
+ for (xmlpp::NodeSet::iterator i = c.begin (); i != c.end(); ++i) {
+ n.push_back (shared_ptr<Node> (new Node (*i)));
}
_taken.push_back (name);
BOOST_CHECK_EQUAL (document.optional_bool_child("E").get(), true);
BOOST_CHECK_THROW (document.optional_bool_child("F"), cxml::Error);
BOOST_CHECK (!document.optional_bool_child("G"));
+
+ BOOST_CHECK_EQUAL (document.node_children("F").size(), 2);
+ BOOST_CHECK_EQUAL (document.node_children("F").front()->content(), "1");
+ BOOST_CHECK_EQUAL (document.node_children("F").back()->content(), "2");
}