- // fetch element name; this will be the full qualified name
- ustring name = reader_->get_name();
- bool empty = false;
-
- storageIfc_->newChild(name);
-
- /* We must be really carefull here. calling process attributes moves
- the document pointer on the last attribute, hence calling reader_->is_empty
- afterwards will yield the wrong result. It is better to call it while we are
- on the element and generate a nodeFinished() call at the end */
- empty = reader_->is_empty_element();
-
-
- // now, process attributes
- if (reader_->has_attributes())
- {
- processAttributes();
- };
-
-
- if (empty){
- storageIfc_->nodeFinished(name);
- };
-
-
+ doText();
+ // fetch element name; this will be the full qualified name
+ ustring name = reader_->get_name();
+ bool empty = false;
+ size_t found = name.find_first_of(':');
+ if (found == ustring::npos)
+ tb->NewOpenTag(name);
+ else
+ tb->NewOpenTag(name.substr(found+1,name.length() - found - 1));
+
+ /* We must be really carefull here. calling process attributes moves
+ the document pointer on the last attribute, hence calling reader_->is_empty
+ afterwards will yield the wrong result. It is better to call it while we are
+ on the element and generate a nodeFinished() call at the end */
+ empty = reader_->is_empty_element();
+
+
+ // now, process attributes
+ if (reader_->has_attributes())
+ processAttributes();
+
+
+ if (empty)
+ tb->NewClosingTag(name);
+
+