You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by Nick Betteridge <n....@syntactics.com> on 2002/08/13 07:35:09 UTC

Extra nodes generated after parsing with DOMASBuilder

I'm not too sure if this is a bug.

I create a parser, read in the sample schema (personal-schema.xml) from
the distribution, then read in the data (personal.xml). When I traverse
the document, I get an extra text node per each element node.


DOMImplementationAS domImpl =
(DOMImplementationAS)ASDOMImplementationImpl.getDOMImplementation();
DOMASBuilder parser = domImpl.createDOMASBuilder(); 


xmlDocument = parser.parseURI(...xml);
Element rootXMLNode = xmlDocument.getDocumentElement();
dumpNode(rootXMLNode);

void dumpNode(Node node) {
    if (node.getNodeType() == Node.TEXT_NODE &&
!node.getNodeValue().equals(""))
        System.out.println(node.getNodeName() + " -> '" +
node.getNodeValue()+"'");
    else {
        System.out.println(node.getNodeName());
        NodeList childList = node.getChildNodes();
        int numChildren = childList.getLength();
        for(int i=0;i<numChildren;i++) {
            Node childNode = (Node)childList.item(i);
            dumpNode(childNode);
                    
        }
    }
}




Snip of data (personal.xml)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE personnel SYSTEM "personal.dtd">
<personnel>

  <person id="Big.Boss">
    <name><family>Boss</family> <given>Big</given></name>
    <email>chief@foo.com</email>
    <link subordinates="one.worker two.worker three.worker four.worker
five.worker"/>
  </person>

  <person id="one.worker">
    <name><family>Worker</family> <given>One</given></name>
    <email>one@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="two.worker">
    <name><family>Worker</family> <given>Two</given></name>
    <email>two@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

---------


Gives .....

ELEMENT_NODE 
personnel
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Boss'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'Big'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'chief@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Worker'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'One'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'one@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Worker'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'Two'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'two@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Worker'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'Three'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'three@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Worker'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'Four'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'four@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
  '
ELEMENT_NODE 
person
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
name
ELEMENT_NODE 
family
TEXT_NODE 
#text -> 'Worker'
TEXT_NODE 
#text -> ' '
ELEMENT_NODE 
given
TEXT_NODE 
#text -> 'Five'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
email
TEXT_NODE 
#text -> 'five@foo.com'
TEXT_NODE 
#text -> '
    '
ELEMENT_NODE 
link
TEXT_NODE 
#text -> '
  '
TEXT_NODE 
#text -> '
'

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org