# SVG Datei auslesen und Batik



## Andrexyz (16. Okt 2007)

Hallo

Ich habe ein kleines Problem. Ich möchte programmiere eine kleine Applikation mit denen man SVG XML Dateien einlesen kann und auch darstellen kann. Ganz normale XML Dateien auslesen und das DOM Document zu bearbeiten ist kein Problem, aber ich möchte mit Batik die Dateien auch darstellen. Das habe ich auch schon hin bekommen, aber leider nur mit:


```
JSVGCanvas svgCanvas = new JSVGCanvas();
svgCanvas.setURI(xmlObj.getFile().toURI().toString());
```

Damit kann man SVG-xml Dateien ja direkt in den Canvas bringen. Im Internet habe ich auch gefunden wie man ein neues Document erstellt...leider nur leer:

```
DOMImplementation impl = SVGDOMImplementation.getDOMImplementation();
String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
Document doc = impl.createDocument(svgNS, "svg", null);
```

wenn ich mien "normales" Dom document übergeben will bekomme ich eine Exception:




> ava.lang.ClassCastException: org.apache.batik.dom.GenericElement cannot be cast to org.w3c.dom.svg.SVGSVGElement
> at org.apache.batik.dom.svg.SVGOMDocument.getRootElement(Unknown Source)
> at org.apache.batik.bridge.BridgeContext.getBridgeExtensions(Unknown Source)
> at org.apache.batik.bridge.BridgeContext.registerSVGBridges(Unknown Source)
> ...



Ich will also nur XML dateien auslesen in das Canvas reinladen und dann direkt auf die XML datei zu greifen und verändern...damit es auch gleich im Canvas sich ändert.


Danke für eure Lösungsvorschläge, die offizielle Webseite von dem Batik hat mir leider nicht so geholfen.

mfg
André


----------



## Wildcard (16. Okt 2007)

Die batik API ist nicht wirklich dafür ausgelegt die SVG Fähigkeiten nach aussen zu publizieren. Ärgerlich, aber derzeit kaum zu ändern.


----------

