Aus CLOB ein XML erstellen

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Moin zusammen,

ich habe leider folgendes Problem und hoffe hier Hilfe zu finden:

Problembeschreibung:

-> Oracle Datenbank auslesen und aus dem Ergebnis (CLOB) ein XML erstellen und optional esmit zusätzlichen ChildeNotes erweitern. Dieses CLOB enthält bereits nach definition in Oracle ein XML. Muss also "nur noch" in Java darstellbar gemacht werden.

Bisherige Vorgehensweise:

1. Ich hole mir mit Hilfe von JDBC aus einer Oracle Datenbank über eine Abfrage ein CLOB.
Code:
        String url = "jdbc:oracle:thin:@localhost:1521:orcl10g";
        Connection con = DriverManager.getConnection(xxx, "xxx", "xxx");

	str = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
	String sql = "SELECT xxx AS data FROM dual";
	erg = str.executeQuery(sql);
	erg.next();
        xml = clobToString(erg.getClob("data"));



2. Danach wandle ich den CLOB mit Hilfe von clobToString um.

Code:
String clobToString(Clob clob) throws IOException
	   {
	      String s = null;
	      try
	        {
	    	s = clob.getSubString(1L, (int) clob.length());
	        }
  	      catch (SQLException e)
  	        {
	        }
	      return s;
	   }

3. XML Parsen

Code:
public static NodeList parseXML (String s) {
    DOMParser d = new DOMParser();
    try {
            d.parse( new StringReader(s) );
            return ((XMLDocument)d.getDocument()).selectNodes("/");
    } catch (Exception e) {
            return (new XMLDocument()).getChildNodes();
    }
}


4. Als Ergebnis habe ich eine Nodelist erhalten und weiß leider nicht wie ich die speichern, bzw. sichtbar machen kann. Ein Temp-XML File speichern würde mir reichen, bzw. ist auch mein primäres Ziel.

Leider hat das nicht geklappt und hier ist sozusagen mein Knackpunkt - hat jemand einen Vorschlag wie das gehen könnte - bin für jeden Denkanstoß dankbar. Andere Wege sind auch erwünscht 🙂

Grüße und danke schon im voraus

Dominik
 
Durch eine NodeList kannst iterieren. Meist du das mit sichtbar machen?

String NodeList.item(index)


Gruß
zed
 
Hat sich erledigt, manchmal hat man ein Brett vorm Kopf.

Lösung für mich: einfach ein TMPFile erzeugen....

Code:
xmlfile ist CLOB

File directory= new File("/aaa");
	    File xmlfile = File.createTempFile(prefix, suffix, directory);
	    
	    BufferedWriter print = new BufferedWriter(
	    		  new OutputStreamWriter(
	    		    new FileOutputStream(xmlfile) ) );
	    print.write(xmlresult);
	    print.newLine();
	    print.close();

Danke trotzdem für deine Antwort 🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben