Re: [libxml++] NodeList problem.
- From: Jonathan Wakely <cow compsoc man ac uk>
- To: Darko Miletic <darko uvcms com>
- Cc: m smart sympatico ca, libxmlplusplus-general lists sourceforge net
- Subject: Re: [libxml++] NodeList problem.
- Date: Thu, 9 Jun 2005 17:31:26 +0100
On Tue, Jun 07, 2005 at 04:14:41PM -0300, Darko Miletic wrote:
> m smart sympatico ca wrote:
> >Hi, I have am trying to use your API with MSVC71. Most things seem to work
> >okay, but when I have a line of code like the following:
> >
> > const xmlpp::Node::NodeList& m_nodeList = root->get_children();
> > xmlpp::Node::NodeList::const_iterator itr = m_nodeList.begin();
> >
> >After running my program through a debugger, I found that it's when
> >m_nodeList.begin() is called that the problem arises. I can make calls to
> >m_nodeList.size() and empty() without a problem, it's just the begin one.
> >The error I get is "The application has requested the runtime to terminate
> >in an unusual way..."
> >
> >Does anyone know what I am doing wrong? Thanks in advance for any help,
>
> You do it wrong. get_children return a list container that should
> contain all children elements. However if there is no children of that
> node get_children returns empty list. You must check if list contains
> something. You can do it like this:
>
> xmlpp::Node::NodeList nl = node->get_children();
> if ( !nl.empty() ) {
> xmlpp::Node::NodeList::iterator it = nl.begin();
> //other code here
> }
Surely not?!?!
If the container is empty calling begin() will return an iterator that
compares equal to end(). _dereferencing_ that iterator would be an
error, but not simply copying it.
jon
--
"What I tell you three times is true"
- The Hunting of the Snark
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]