XML vs java - org.apache.xerces.dom.DeferredElementNSImpl
Jeg har følgende ens kode i 2 forskellige java-applikationer:==========
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.DOMException;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
DocumentBuilder builder = DocumentBuilder();
document = builder.parse( new File(argv[0]) );
NodeList test = document.getElementsByTagName("AFSNIT_drift_7_4");
System.out.println("NodeList test length: "+ test.getLength());
System.out.println("NodeList test item: "+ test.item(0));
for (int j = 0; j < test.getLength() ; j++) {
Node element_2 = test.item(j);
System.out.println(j+" - getClass().getName() - "+element_2.getClass().getName());
System.out.println(j+" - getNodeName() - "+element_2.getNodeName());
System.out.println(j+" - getNodeType() - "+element_2.getNodeType());
System.out.println(j+" - getNodeValue() - \""+element_2.getNodeValue()+"\"");
System.out.println(j+" - toString() - "+element_2.toString());
}
==========
Hvordan kan det være at:
System.out.println(j+" - getClass().getName() - "+element_2.getClass().getName());
program 1) skriver:
0 - getClass().getName() - org.apache.xerces.dom.DeferredElementNSImpl
og program 2) skriver:
0 - getClass().getName() - org.apache.crimson.tree.ElementNode2
--
Jeg skal bruge det til at hente teksten omgivet af(i dette tilfælde) tag-("AFSNIT_drift_7_4").
I program 2 går det fint, da jeg blot kan foretage en element_2.toString() for at få teksten ud..
Men i program 1 er element_2.toString() == null...
Hvorfor og hvordan kan det være at der er forskel på disse ellers identiske program stumper. Samt hvad gør jeg i program 1) for at få den "rigtige" tekst frem?
Hilsen Christian