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:od="urn:schemas-microsoft-com:officedata"
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 & 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");
...
Mike Schilling - 01 Jun 2007 18:46 GMT
> Hello there!
>
[quoted text clipped - 6 lines]
>
> 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.
Rodolphe G - 01 Jun 2007 19:01 GMT
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);
}
...
----------------------------------------------------------------------------------------------------------------------------
Mike Schilling - 01 Jun 2007 20:01 GMT
> Mike, that would be here :
>
[quoted text clipped - 26 lines]
> 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.
Rodolphe G - 01 Jun 2007 20:49 GMT
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 :)