Hi,
        If speed is a concern then you could derive your own parser and 
override docCharacters so the text nodes you dont want are not ever 
created.

Gareth


On 1 Oct 2002, Justin Kirby wrote:

> Xerces, by default, and I know of no way to turn this off if you don't
> have a dtd, inserts whitespace into the DOM tree as text nodes.
> So it looks to me that you have a file with the contents:
> <model>
>   <scale>0.025</scale>
> </model>
> 
> 
> I would recommend adjusting the contents to not have any whitespace.
> e.g.:
> <model><scale>0.025</scale></model>
> 
> Or the other alternative is to implement a cleanup function that walks
> the entire tree and removes nodes that are nothing but whitespace. I
> have a bunch of experimental code that happens to do this:
> http://www.openaether.org/src/source/framework/xmlutil.cpp#L135
> Feel free to steal it, or improve it... if you do let me know ;)
> 
> 
> 
> On Tue, 2002-10-01 at 00:16, Ken Miller wrote:
> > I am creating a linked list when parsing through a DOM document and
> > having a small problem.  When the node is an element node, I check to
> > see if there are more children or siblings and then handle the linked
> > list accordingly.  The problem is that it seems that every node is
> > treated as a sibling, so a dummy sibling node is created after each
> > node.  When an actual child is found, it is placed under the dummy
> > sibling node instead of the actual node.  For example, I get the
> > following when reading an XML file that has a node called 'model' and a
> > child  called 'scale':
> >  
> > Name:  model
> > Value:
> > Name:  *
> > Value: *
> >    Name:  scale
> >    Value: 0.025
> >  
> > This shows the dummy sibling (marked with the *) and the scale child
> > node added under the dummy node vice the 'model' node.  The * in the
> > name and value is just what is put into those fields when the new linked
> > list node is created and is not added from the XML file.
> >  
> > Any ideas on what I am doing wrong?  I have included the code snippet
> > below.
> >  
> > Thanks.
> >  
> > Ken
> >  
> > part of a buildList function:
> >  
> > case DOM_Node::ELEMENT_NODE :
> > {
> >     strcpy(currentPtr->elementName, nodeName.transcode());
> >  
> >     // Output any attributes on this element
> >     DOM_NamedNodeMap attributes = toWrite.getAttributes();
> >     int attrCount = attributes.getLength();
> >     for (int i = 0; i < attrCount; i++)
> >     {
> >         DOM_Node  attribute = attributes.item(i);
> >     }
> >    
> >    DOM_Node child = toWrite.getFirstChild();
> >    if (child != 0)
> >    {
> >        while( child != 0)
> >        {
> >            DOMString tmpName  = child.getNodeName();
> >            if(child.getNodeType() != DOM_Node::TEXT_NODE) {
> >                addChildToNode(currentPtr);
> >                buildList(child, currentPtr->child);
> >            }
> >            else {
> >                buildList(child, currentPtr);
> >            }
> >  
> >           child = child.getNextSibling();
> >           if(child != 0) {
> >               DOMString tmpName  = child.getNodeName();
> >               if(strcmp(tmpName.transcode(), "#text") != 0) {
> >                   addSiblingToNode(currentPtr);
> >                   currentPtr = currentPtr->rSibling;
> >               }
> >                   
> >            }
> >        }
> >     
> >      }
> >     break;
> >   }
> > 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

-- 
Gareth Reakes, Head of Product Development  
DecisionSoft Ltd.            http://www.decisionsoft.com
Office: +44 (0) 1865 203192



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to