I believe it is also possible to provide a DTD and set ignorable whitespace
to true.

Mark

> -----Original Message-----
> From: Gareth Reakes [mailto:[EMAIL PROTECTED]]
> Sent: 01 October 2002 08:50
> To: [EMAIL PROTECTED]
> Subject: Re: Help with getting the next sibling
>
>
> 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]
>
>


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

Reply via email to