Getting to the root node of an xml document

R

Rodolphe G

Hello there!

I'm trying to get to an xml document root node (named dataroot), I've
tried different things, like :

Node node = doc.getFirstChild();
Node node = doc.getDocumentElement();
Node node = doc.getElementsByTagName("dataroot").item(0);

None of them seem to work, the "node" variable is NULL everytime.

Here's the start of the XML file, I somebody has an idea, it's be very
helpful :) Cheers!

XML Document :

<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:eek:d="urn:schemas-microsoft-com:eek:fficedata"
generated="2007-05-25T20:41:06">
<SITES>
<FECD_ID>18</FECD_ID>
<LATITUDE>55.53</LATITUDE>
<LONGITUDE>-98.41</LONGITUDE>
<SITE_INFORMATION>
<FECD_ID>18</FECD_ID>
<ORIGINAL_SOURCE>Halliwell &amp; Apps, 1997</ORIGINAL_SOURCE>
<ORIGINAL_SOURCE_ID>MAN TE-OA (1)</ORIGINAL_SOURCE_ID>
<ESTABLISHMENT_DATE>1994</ESTABLISHMENT_DATE>
<PROVINCE>MB</PROVINCE>
<TERRESTRIAL_ECOZONE>Boreal Shield</TERRESTRIAL_ECOZONE>
<TERRESTRIAL_ECOREGION_TEXT>Churchill River Upland</
TERRESTRIAL_ECOREGION_TEXT>
<ORDER>Brunisolic</ORDER>
<SUB_GROUP_GREAT_GROUP>Gleyed Melanic</SUB_GROUP_GREAT_GROUP>
<DRAINAGE_CLASS_ID>Imperfectly</DRAINAGE_CLASS_ID>
<FEATURE_DEPTH>33</FEATURE_DEPTH>
<SOIL_FEATURE>Carbonates</SOIL_FEATURE>
<ROOTING_DEPTH>53</ROOTING_DEPTH>
<DOMINANT_TREE_1>POPU TRE</DOMINANT_TREE_1>
<CODOMINANT_TREE_1>POPU TRE</CODOMINANT_TREE_1>
....

Part of the code :

public class WWXMLSitesLayer extends IconLayer implements
SelectListener {

public WWXMLSitesLayer(String fileName, String layerName)
{
this.setName(layerName);
this.loadIcons(readXML(new File(fileName)), layerName);
}

// Load icons from XML document named layer
private void loadIcons(Document doc, String layerName) {

// Get LayerSet node
// Node node = findLayerSetByName(doc, layerName);
Node node = doc.getElementsByTagName("dataroot").item(0);

if(node == null)
return; // TODO: throw exception


loadLayerSet(node);
}

// Load icons from a LayerSet node (recursive)
private void loadLayerSet(Node node) {
// Process icon child nodes
Node child;

for(int i = 0; i < node.getChildNodes().getLength(); i++) {
// child = node.getChildNodes().item(i);
child = node.getChildNodes().item(i);
//if(child.getNodeName().compareToIgnoreCase("SITES") == 0) {
// loadLayerSet(child); // recurse
//}
//else if(child.getNodeName().compareToIgnoreCase("SITES") ==
0) {
// Get icon info
Node n;
n = findChildByName(child, "SITES");
String name = n.getTextContent();
n = findChildByName(child, "LATITUDE");
....
 
M

Mike Schilling

Rodolphe said:
Hello there!

I'm trying to get to an xml document root node (named dataroot), I've
tried different things, like :

Node node = doc.getFirstChild();
Node node = doc.getDocumentElement();
Node node = doc.getElementsByTagName("dataroot").item(0);

None of them seem to work, the "node" variable is NULL everytime.

Then the document is empty. Show us the code where you load it.
 
R

Rodolphe G

Mike, that would be here :

----------------------------------------------------------------------------
WWXMLSitesLayer("SITES.xml", "Sites d'étude")
----------------------------------------------------------------------------

Here's the class:

----------------------------------------------------------------------------------------------------------------------------
public class WWXMLSitesLayer extends IconLayer implements
SelectListener {

public WWXMLSitesLayer(String fileName, String layerName)
{
this.setName(layerName);
this.loadIcons(readXML(new File(fileName)), layerName);
}

// Load icons from XML document named layer
private void loadIcons(Document doc, String layerName) {

// Get LayerSet node
// Node node = findLayerSetByName(doc, layerName);
Node node = doc.getElementsByTagName("dataroot").item(0);

if(node == null)
return; // TODO: throw exception


loadLayerSet(node);
}
....
----------------------------------------------------------------------------------------------------------------------------
 
M

Mike Schilling

Rodolphe said:
Mike, that would be here :

----------------------------------------------------------------------------
WWXMLSitesLayer("SITES.xml", "Sites d'étude")
----------------------------------------------------------------------------

Here's the class:

----------------------------------------------------------------------------------------------------------------------------
public class WWXMLSitesLayer extends IconLayer implements
SelectListener {

public WWXMLSitesLayer(String fileName, String layerName)
{
this.setName(layerName);
this.loadIcons(readXML(new File(fileName)), layerName);
}

// Load icons from XML document named layer
private void loadIcons(Document doc, String layerName) {

// Get LayerSet node
// Node node = findLayerSetByName(doc, layerName);
Node node = doc.getElementsByTagName("dataroot").item(0);

if(node == null)
return; // TODO: throw exception


loadLayerSet(node);
}

Presumably it's inside readXML(), then. At any rate, if doc is non-null but
doc.getDocumentElement() is nul, you've got an empty document, which you
wouldn't have if it were produced by parsing the XML file you showed.
 
R

Rodolphe G

Ok, I'll go through it again and check if doc is indeed non-null since
I know for a fact that my XML isn't :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Staff online

Members online

Forum statistics

Threads
473,755
Messages
2,569,534
Members
45,007
Latest member
obedient dusk

Latest Threads

Top