Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / June 2007

Tip: Looking for answers? Try searching our database.

Getting to the root node of an xml document

Thread view: 
Rodolphe G - 01 Jun 2007 18:22 GMT
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 &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");
...
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 :)


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.