diff options
author | Daniel Veillard <veillard@src.gnome.org> | 2008-08-25 14:53:31 +0000 |
---|---|---|
committer | Daniel Veillard <veillard@src.gnome.org> | 2008-08-25 14:53:31 +0000 |
commit | aa6de47ebf0d4f96ed83e06c79a870a4e9b5dd0e (patch) | |
tree | 12f0353b21360a010e0ca3ed7609df1c227e2168 /xmlreader.c | |
parent | f4f4e4853a925905deb77a72a3311ab683fbeeb5 (diff) | |
download | android_external_libxml2-aa6de47ebf0d4f96ed83e06c79a870a4e9b5dd0e.tar.gz android_external_libxml2-aa6de47ebf0d4f96ed83e06c79a870a4e9b5dd0e.tar.bz2 android_external_libxml2-aa6de47ebf0d4f96ed83e06c79a870a4e9b5dd0e.zip |
applied patch from Aswin to fix tree skipping fixed a comment and added a
* xmlreader.c: applied patch from Aswin to fix tree skipping
* include/libxml/entities.h entities.c: fixed a comment and
added a new xmlNewEntity() entry point
* runtest.c: be less verbose
* tree.c: space and tabs cleanups
daniel
svn path=/trunk/; revision=3774
Diffstat (limited to 'xmlreader.c')
-rw-r--r-- | xmlreader.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/xmlreader.c b/xmlreader.c index 92b053ed..737fdbce 100644 --- a/xmlreader.c +++ b/xmlreader.c @@ -1847,17 +1847,22 @@ xmlTextReaderNextTree(xmlTextReaderPtr reader) } if (reader->state != XML_TEXTREADER_BACKTRACK) { - if (reader->node->children != 0) { - reader->node = reader->node->children; - reader->depth++; + /* Here removed traversal to child, because we want to skip the subtree, + replace with traversal to sibling to skip subtree */ + if (reader->node->next != 0) { + reader->node = reader->node->next;// Move to sibling if present,skipping sub-tree + //reader->depth++; reader->state = XML_TEXTREADER_START; return(1); } - + + /* if reader->node->next is NULL mean no subtree for current node, + so need to move to sibling of parent node if present */ if ((reader->node->type == XML_ELEMENT_NODE) || (reader->node->type == XML_ATTRIBUTE_NODE)) { reader->state = XML_TEXTREADER_BACKTRACK; - return(1); + xmlTextReaderRead(reader);// This will move to parent if present + //return(xmlTextReaderReadTree(reader)); } } @@ -1876,7 +1881,8 @@ xmlTextReaderNextTree(xmlTextReaderPtr reader) reader->node = reader->node->parent; reader->depth--; reader->state = XML_TEXTREADER_BACKTRACK; - return(1); + xmlTextReaderNextTree(reader); //Repeat process to move to sibling of parent node if present + //return(1); } reader->state = XML_TEXTREADER_END; |