Seiten

Dienstag, 8. Februar 2011

JAVA und XML 8-2-2011

Weiter bei der Entwicklung des XML Einlesewerkzeuges für die Datenbank. Abhilfe schaffte jetzt schnell und kurzfristig dieser code:

  try {
  File file = new File("c:\\MyXMLFile.xml");
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = dbf.newDocumentBuilder();
  Document doc = db.parse(file);
  doc.getDocumentElement().normalize();
  System.out.println("Root element " + doc.getDocumentElement().getNodeName());
  NodeList nodeLst = doc.getElementsByTagName("employee");
  System.out.println("Information of all employees");

  for (int s = 0; s < nodeLst.getLength(); s++) {

    Node fstNode = nodeLst.item(s);
    
    if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
  
           Element fstElmnt = (ElementfstNode;
      NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("firstname");
      Element fstNmElmnt = (ElementfstNmElmntLst.item(0);
      NodeList fstNm = fstNmElmnt.getChildNodes();
      System.out.println("First Name : "  ((NodefstNm.item(0)).getNodeValue());
      NodeList lstNmElmntLst = fstElmnt.getElementsByTagName("lastname");
      Element lstNmElmnt = (ElementlstNmElmntLst.item(0);
      NodeList lstNm = lstNmElmnt.getChildNodes();
      System.out.println("Last Name : " ((NodelstNm.item(0)).getNodeValue());
    }

  }
  catch (Exception e) {
    e.printStackTrace();
  }


von 

http://www.java-tips.org/java-se-tips/javax.xml.parsers/how-to-read-xml-file-in-java.html

Benötigt werden folgende Packages:

import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;


Im oberen Teil des codes wird sich in der Baumstruktur des  XML  Dokumentes nach der Konvertierung in ein "Document" an die einzelnen Einträge "hinabgehangelt" und diese dan Ausgegeben.

Für die von mir angestrebte Lösung müssen diese Daten nun mit der Datenbank abgeglichen werden. Dies geschieht mithilfe der SQLObject - Klasse die bereits geschrieben wurde. Vermutlich werde ich aber morgen einige kleinere Änderungen für den Abgleich daran durchführen. 

Dann gab es heute noch Noten in ITS. Bin zufrieden, hätte aber malwieder besser sein können. 

Keine Kommentare:

Kommentar veröffentlichen