X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=XMLTree.cpp;h=e68ef303ba6813390479f5bee775e8557d5449ef;hb=4acac321b654b6365cc72e04299c8d180ddb1d21;hp=1d01a76bdc071b6c23898bbed5ff222f7b2495e0;hpb=5489b44ed5656cad39498675305ea9f2bd49dd07;p=SXSI%2FXMLTree.git 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.