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]
