svg(xml) parsen und manipulieren?

NotEvil

Mitglied
Hi,
kann mir mal jemand sagen, wie ich eine svg manipulieren kann?
Für mich ist das xml, "kann ja nicht so schwer sein" an die Attribute zu kommen^^

hab folgende svg
Code:
<svg width="600" height="450" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(10,0)">
  <text id="textLeft" x="0" y="35" font-family="Verdana" font-size="15">
  vcore
  </text>
  <text id="textBottom" x ="460" y="390" font-family="Verdana" font-size="15">
  errors
  </text>
</g>
 <g transform="translate(90,0)">
  <title>title</title>  
  <line id="y-axis" x1="32" y1="10" y2="370" x2="32" stroke="#000" fill="none"/>
  <line id="y-axis" x1="32.5" y1="370" y2="370" x2="600" stroke="#000" fill="none"/>
  <rect id="red-area" fill-opacity="0.5"  height="150" width="200" y="10" x="330" stroke="#8B4D4B" fill="#ff0a02"/>
  <path id="green-area" d="M32 50, 102 90, 172 102, 242 153, 312 155, 382 195, 452 215, 527 220, 527 370, 32 370"
  opacity="0.5" fill-opacity="0.5" stroke="#8B4D4B" fill="#7fff00" />  
 </g>
</svg>

lese die aus einer Datei, will die Punke manipulieren bei <path d="M32 0.."
anschließend speichern
Code:
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilder;
...

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
     DocumentBuilder builder = factory.newDocumentBuilder();
     File file = new File("c:\\bla.svg");
Document doc = builder.parse(file);//dom objekt
..
NodeList nList = doc.getElementsByTagName("path");
 

Kababär

Top Contributor
Code:
        NamedNodeMap attr = nList.getAttributes();
        Node nodeAttr = attr.getNamedItem("d");
        nodeAttr.setTextContent("Manipuliert");

Kenne mich mit DOM nicht so gut aus. Finde DOM sieht aber einfacher aus als XPath und JAX.
Generell bevorzuge ich JAX, weil man da letztendlich POJOs hat.
 

NotEvil

Mitglied
mein Problem is eher das DOM Objekt

Code:
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
        System.out.println("node <g> lengh:" + doc.getElementsByTagName("g").getLength());
        System.out.println("node x:" + doc.getElementsByTagName("g").item(0).getFirstChild().toString());
        System.out.println("node getNodeName:" + doc.getElementsByTagName("g").item(0).getFirstChild().getNodeName());
        System.out.println("rect: " + doc.getElementsByTagName("rect").toString());
        System.out.println("getNodeName: " + doc.getFirstChild().getNodeName());
        System.out.println("getNextSibling:" + doc.getElementsByTagName("g").item(0).getNextSibling());
liefert
Code:
Root element :svg
node <g> lengh:2
node x:[#text:
  ]
node getNodeName:#text
rect: com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl@11cdd8a
getNodeName: svg
getNextSibling:[#text:
]

ich weiß nicht genau an welchem Knoten ich bin und mit "getElementById" knallts oft, weil ich null hab
gib es keine "einfache" Möglichkeit in Java sowas wie
document.getElementById("meine-id").setAttribute("fill", "#333");
zu erreichen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Inhalte Parsen von Website Allgemeine Java-Themen 15
W JSON parsen eines ,mit JS.stringify erstellten Strings Allgemeine Java-Themen 27
C Parsen einer sich updatenden Html mithilfe von jsoup Allgemeine Java-Themen 4
O JSON in Integer parsen Allgemeine Java-Themen 5
S Ini Text aus String parsen Allgemeine Java-Themen 1
OnDemand Datenbankdatei parsen Allgemeine Java-Themen 2
OnDemand CSV parsen mehrere Zeilen Allgemeine Java-Themen 22
2 mehrere Json Werte Parsen Allgemeine Java-Themen 3
G JSON parsen Allgemeine Java-Themen 3
W String Parsen und auf eigenes Muster anwenden (kein Regex) Allgemeine Java-Themen 11
looparda Datei parsen Allgemeine Java-Themen 1
T Jsoup: Mehrere Links nacheinander parsen Allgemeine Java-Themen 11
C Benutzereingabe von EXCEL-Funktionen parsen Allgemeine Java-Themen 4
B Such-String parsen mit Klammern Allgemeine Java-Themen 2
L Windows CMD werte Parsen. Allgemeine Java-Themen 2
B XML parsen Allgemeine Java-Themen 13
H Bestimmten Wert aus String parsen Allgemeine Java-Themen 7
0 Parsen Allgemeine Java-Themen 7
W Best Practice Dateien parsen Allgemeine Java-Themen 3
X Tags "parsen" Allgemeine Java-Themen 8
A Parsen mit java_cup - Shift/Reduce Problem Allgemeine Java-Themen 12
C Roboter, Befehle parsen Allgemeine Java-Themen 12
M Informationen aus komplexen String parsen Allgemeine Java-Themen 13
W Dateinamen dynamisch Parsen Allgemeine Java-Themen 12
F JavaMail - Lokale eMail-Datei einlesen und parsen? Allgemeine Java-Themen 9
T String in Date parsen (*ohne* bekanntes Format) Allgemeine Java-Themen 8
M Dateien mit Quelltext parsen Allgemeine Java-Themen 7
W RegEx Zeile parsen Medium Allgemeine Java-Themen 8
S Dateiname mit Regex parsen Allgemeine Java-Themen 3
K _alle_ Sonderzeichen parsen Allgemeine Java-Themen 2
S Feher beim Parsen eines Datums Allgemeine Java-Themen 4
E Reguläre Txt in Tree parsen Allgemeine Java-Themen 2
S Strings zu Color-Instanzen parsen? Allgemeine Java-Themen 7
S Überprüfung/Parsen eines Byte-Arrays Allgemeine Java-Themen 9
martin82 Java-Code aus Text-Datei parsen Allgemeine Java-Themen 3
A String zu Datum parsen - SimpleDateFormat Problem Allgemeine Java-Themen 8
A Datum parsen Allgemeine Java-Themen 9
G Parsen von: if(a > 15 AND (b == 3 OR c != 4)) Allgemeine Java-Themen 3
G String nach Float parsen Allgemeine Java-Themen 2
P OutOfMemoryError beim XML erstellen bzw parsen, mehr RAM? Allgemeine Java-Themen 4
H2SO3- Exception beim date parsen des Jahres 00 Allgemeine Java-Themen 6
H2SO3- date mit pm and am parsen Allgemeine Java-Themen 3
Z Datum ohne Format-Kenntnisse parsen Allgemeine Java-Themen 5
T Wie kontinuierlichen asci input parsen? Allgemeine Java-Themen 3
C Java Quellcode parsen Allgemeine Java-Themen 8
alexpetri Date Parsen Allgemeine Java-Themen 3
G String parsen und Problem mit escaped zeichen Allgemeine Java-Themen 4
M Html parsen Allgemeine Java-Themen 2
D Parameter parsen? Allgemeine Java-Themen 15
V Datum parsen Allgemeine Java-Themen 6
MQue String parsen Allgemeine Java-Themen 11
M wie sinnvoll parsen ? Allgemeine Java-Themen 4
M Link parsen bzw. zerlegen Allgemeine Java-Themen 9
padde479 String in double parsen Allgemeine Java-Themen 6
W Package via Reflection parsen Allgemeine Java-Themen 4
M MP3 Datei selber parsen/werte auslesen Allgemeine Java-Themen 13
J parsen von verschiedenen dokument typen Allgemeine Java-Themen 3
B textzeile parsen Allgemeine Java-Themen 6
T Schlüsseldatei mit Umlauten parsen, aber wie. Allgemeine Java-Themen 6
G mail body parsen (->attachment & filename) Allgemeine Java-Themen 2
J DirectPlay Server-Antwort parsen Allgemeine Java-Themen 2
S String parsen Allgemeine Java-Themen 15
V LogFile parsen Allgemeine Java-Themen 5
E Field-Objekt in JTextField parsen Allgemeine Java-Themen 3
L Prozesse parsen ? Allgemeine Java-Themen 2
P iTunes Datenbank manipulieren Allgemeine Java-Themen 2
R Problem beim vCard Manipulieren Allgemeine Java-Themen 2
Z 2D-Grafik Webcam-Bilder analysieren und manipulieren Allgemeine Java-Themen 8
S Dynamisches Manipulieren/Laden von Klassen Allgemeine Java-Themen 4
C Bilder automatisch bearbeiten/manipulieren Allgemeine Java-Themen 2
H Pixel im BufferedImage Manipulieren ? Allgemeine Java-Themen 17
K Elegante Lösung zum Manipulieren von Collections gesucht Allgemeine Java-Themen 16
D mausbewegungungen manipulieren Allgemeine Java-Themen 2
R Einzelne Zeile manipulieren Allgemeine Java-Themen 4
M Array per Reflection manipulieren Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben