Hallo Leute!
Ich probiere mich derzeit in XML-Techniken und muss jetzt einen XML-String parsen.
Folgendes recht einfaches Beispiel habe ich gefunden, was ich auf meinen Fall gerne Ableiten möchte:
//****************Bsp. Anfang
Folgende XML-Datei ist gegeben:
Diese XML-DAtei kann man laut Beispiel nun wie folgt parsen und ausgeben:
//****************Bsp. Ende
Dieses Beipiel unterscheidet sich in 3 Sachen von meinem Fall:
1.: Es liest eine XML Datein ein "read.setFile("root.xml");", bei mir ist es ein String.
2.: Es gibt keine Attribute (ich hoffe das war jetzt richtig :autsch
3.: Die geparsten Elemente sollen nicht ausgegeben werden sonder in Variablen gespeichert werden.
Mein XML String:
Mein zu parsender XML String hat folgende Struktur:
Nun meine Fragen:
1. Wie bekomme ich es hin, das er einen String parst anstatt eine Datei einliest?
2. Im obigen Beispiel wird mir gezeigt wie ich (in meinem Beispiel) auf my_int1, my_int2 und auf Message zugreifen kann. Allerdings nicht, wie ich auf var1 und var2 (das müssten die Attribute sein??) zugreifen kann.
Dahre --> Wie muss ich den Beispielcode erweitern um darauf zuzugreifen?
3. Ich möchte die extrahierten Daten nicht ausgeben, sondern in Variablen abspeichern. Wie mache ich das?
Evtl. so?:
Ich hoffe jemand kann mir dabei ein bisschen helfen. Ich komm an dieser Stelle nichtmehr so wirklich weiter.:roll:
Gruß
Happyman0815
Ich probiere mich derzeit in XML-Techniken und muss jetzt einen XML-String parsen.
Folgendes recht einfaches Beispiel habe ich gefunden, was ich auf meinen Fall gerne Ableiten möchte:
//****************Bsp. Anfang
Folgende XML-Datei ist gegeben:
Java:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<port>1</port>
<baud>9600</baud>
<bit>1</bit>
<parity>0</parity>
</root>
Diese XML-DAtei kann man laut Beispiel nun wie folgt parsen und ausgeben:
Java:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.XMLEvent;
public class TestEventStaX {
private String configFile;
public void setFile(String configFile) {
this.configFile = configFile;
}
public void readConfig() {
try {
// zuerst eine neue XMLInputFactory erstellen
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
// einen neuen eventReader einrichten
InputStream in = new FileInputStream(configFile);
XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
// das XML-Dokument lesen
while (eventReader.hasNext()) {
XMLEvent event = eventReader.nextEvent();
if (event.isStartElement()) {
if (event.asStartElement().getName().getLocalPart() == ("port")) {
event = eventReader.nextEvent();
System.out.println(event.asCharacters().getData());
continue;
}
if (event.asStartElement().getName().getLocalPart() == ("baud")) {
event = eventReader.nextEvent();
System.out.println(event.asCharacters().getData());
continue;
}
if (event.asStartElement().getName().getLocalPart() == ("bit")) {
event = eventReader.nextEvent();
System.out.println(event.asCharacters().getData());
continue;
}
if (event.asStartElement().getName().getLocalPart() == ("parity")) {
event = eventReader.nextEvent();
System.out.println(event.asCharacters().getData());
continue;
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (XMLStreamException e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
TestEventStaX read = new TestEventStaX();
read.setFile("root.xml");
read.readConfig();
}
}//End Class
//****************Bsp. Ende
Dieses Beipiel unterscheidet sich in 3 Sachen von meinem Fall:
1.: Es liest eine XML Datein ein "read.setFile("root.xml");", bei mir ist es ein String.
2.: Es gibt keine Attribute (ich hoffe das war jetzt richtig :autsch
3.: Die geparsten Elemente sollen nicht ausgegeben werden sonder in Variablen gespeichert werden.
Mein XML String:
Mein zu parsender XML String hat folgende Struktur:
Java:
<my_XML Type="foo">
<my_int1 var1="2" />
<my_int2 var2="0" />
<Messsage>hallo ich bin eine test Message</Message>
</my_XML>
Nun meine Fragen:
1. Wie bekomme ich es hin, das er einen String parst anstatt eine Datei einliest?
2. Im obigen Beispiel wird mir gezeigt wie ich (in meinem Beispiel) auf my_int1, my_int2 und auf Message zugreifen kann. Allerdings nicht, wie ich auf var1 und var2 (das müssten die Attribute sein??) zugreifen kann.
Dahre --> Wie muss ich den Beispielcode erweitern um darauf zuzugreifen?
3. Ich möchte die extrahierten Daten nicht ausgeben, sondern in Variablen abspeichern. Wie mache ich das?
Evtl. so?:
Java:
char[] array1 = new char[1000] ;
array1 = event.asCharacters().getData();
Ich hoffe jemand kann mir dabei ein bisschen helfen. Ich komm an dieser Stelle nichtmehr so wirklich weiter.:roll:
Gruß
Happyman0815