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]