# Aus CLOB ein XML erstellen



## Guest (11. Apr 2007)

*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. 

```
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. 


```
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


```
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


----------



## Zed (11. Apr 2007)

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

String NodeList.item(index)


Gruß
zed


----------



## Guest (11. Apr 2007)

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

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


```
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


----------

