From: kim Date: Tue, 26 May 2009 15:50:44 +0000 (+0000) Subject: Reworked FirstElement/NextElement X-Git-Url: http://git.nguyen.vg/gitweb/?p=SXSI%2FXMLTree.git;a=commitdiff_plain;h=4acac321b654b6365cc72e04299c8d180ddb1d21 Reworked FirstElement/NextElement git-svn-id: svn+ssh://idea.nguyen.vg/svn/sxsi/trunk/XMLTree@412 3cdefd35-fc62-479d-8e8d-bae585ffb9ca --- diff --git a/XMLTree.cpp b/XMLTree.cpp index 1d01a76..e68ef30 100644 --- a/XMLTree.cpp +++ b/XMLTree.cpp @@ -440,8 +440,11 @@ treeNode XMLTree::FirstElement(treeNode x) { NULLT_IF(x==NULLT); treeNode fc = first_child(Par, x); - //<$> is 2 - return ((fc == NULLT || Tag(fc) != PCDATA_TAG_ID) ? fc : next_sibling(Par,fc)); + NULLT_IF(fc == NULLT); + TagType tag = Tag(fc); + if (tag != PCDATA_TAG_ID && tag != ATTRIBUTE_TAG_ID) + return fc; + else return next_sibling(Par,fc); } @@ -449,7 +452,11 @@ treeNode XMLTree::NextElement(treeNode x) { NULLT_IF(x==NULLT); treeNode ns = next_sibling(Par, x); - return ((ns == NULLT || Tag(ns) != PCDATA_TAG_ID) ? ns : next_sibling(Par,ns)); + NULLT_IF(ns == NULLT); + TagType tag = Tag(ns); + if (tag != PCDATA_TAG_ID && tag != ATTRIBUTE_TAG_ID) + return ns; + else return next_sibling(Par,ns); } // LastChild(x): returns the last child of node x.