einfach XML lesen

crsh

Mitglied
Ich brauche einen möglichst einfachen Code mit dem man Daten aus XML-Dateien lesen kann. Ich habe bis jetzt versucht JDom zu benutzen, aber da kommen nur irgendwelche Fehlermeldungen, und außerdem ist mir das zu umständlich. Es muss doch eine einfache und unkomplizierte Möglichkeit geben, Daten zu lesen und in Java-Variablen zu speichern.
 

Darano

Mitglied
Ja. XMLPullParserFactory und XMLPullParser sind sehr empfehlenswert. Total eas anzuwenden. Die API ist bei Android sogar im standard package.

http://www.xmlpull.org/v1/doc/api/org/xmlpull/v1/package-summary.html

Beispiel Code wie ich einen RSS-Feed von Apple parse:
Java:
public boolean parseXML(String xmlData) {
boolean status = true;
boolean inEntry = false;
int eventType;
String tagName = "";
String tagValue = "";
FeedEntry currentRecord = null;
try {
XmlPullParserFactory fac = XmlPullParserFactory.newInstance();
fac.setNamespaceAware(true);
XmlPullParser xpp = fac.newPullParser();
xpp.setInput(new StringReader(xmlData));
eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
tagName = xpp.getName();
switch (eventType) {
case XmlPullParser.START_TAG:
if ("entry".equalsIgnoreCase(tagName)) {
inEntry = true;
currentRecord = new FeedEntry();
}
break;
case XmlPullParser.TEXT:
tagValue = xpp.getText();
break;
case XmlPullParser.END_TAG:
if (inEntry) {
if ("title".equalsIgnoreCase(tagName)) {
currentRecord.setTitle(tagValue);
} else if ("summary".equalsIgnoreCase(tagName)) {
currentRecord.setSummary(tagValue);
} else if ("im:price".equalsIgnoreCase(tagName)) {
currentRecord.setIm_price(tagValue);
} else if ("rights".equalsIgnoreCase(tagName)) {
currentRecord.setRights(tagValue);
} else if ("entry".equalsIgnoreCase(tagName)) {
entries.add(currentRecord);
inEntry = false;
}
}
break;
}
eventType = xpp.next();
}
} catch (XmlPullParserException e) {
status = false;
Log.e(TAG, "parseXML: Factory couldnt be instantiated: " + e.getMessage());
} catch (IOException e) {
status = false;
Log.e(TAG, "parseXML: " + e.getMessage());
}
return status;
}
 

ProChris

Mitglied
Hallo Crsh,

wenn es sich um kleinere XML Strukturen handelt, dann verwende ich gerne einen SAX Parser. Sobald die XML Strukturen komplexer werden, verwende ich JAXB.

Viele Grüße

ProChris
 

Nummer6800

Aktives Mitglied
Hallo.

Hatte vorher auch keine Ahnung. Doch dank der folgenden Beitraege konnte ich es einfach loesen:
Musste nur ein wenig rumexperementieren:

Der Beitrag von Olivier Boisse
und



Notwendige imports:
import javax.xml.xpath.*;
import org.xml.sax.SAXException;
import java.io.FileReader;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

So verwendet man es:

File file = new File(offlineUrlXbrlUrl);

// E:/doppelt/test.txt


XPath xPath = XPathFactory.newInstance().newXPath();
String expression = "//*[not(*)]";

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse(file);
document.getDocumentElement().normalize();

NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(document, XPathConstants.NODESET);


for(int i = 0 ; i < nodeList.getLength(); i++) {

if(nodeList.item(i).getNodeName().contains("us-gaap") && nodeList.item(i).getTextContent().length() < 15) {

Habe dann hier abgesucht was us-gaap enthaelt.



Gruß

Axel Pfennig, Duesseldorf
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B eigentlich einfach nur XML schreiben XML & JSON 3
T Einfach nur die Elemente einer XML Datei auslesen :( XML & JSON 10
B Klassen mit generischen Attributen mit Jackson lesen XML & JSON 4
H XMLConfiguration(1.10)/getString : Wert "E" aus <version type="Auto">E</version>n lesen XML & JSON 15
JBoby Yaml File lesen und in Objekte umwandel (SnakeYAML / YamlBeans) XML & JSON 0
E Einzelne Tags der context.xml lesen XML & JSON 1
W Json von URL Lesen (mit Gson Library) XML & JSON 3
W Json von URL Lesen XML & JSON 2
G Jsoup Daten lesen XML & JSON 0
F KindElemente lesen und begrenzen XML & JSON 0
P Bestimmte XML-Inhalte in String lesen XML & JSON 2
B XML aus einer URL im Internet lesen (JDOM) XML & JSON 4
P Komfortabel XML Dokumente schreiben und lesen XML & JSON 6
Maxim6394 Lesen/Schreiben von XML Datei XML & JSON 9
D Aus lesen einer XML-Datei ( 1 root, 3 childs) XML & JSON 7
R XLM Datei lesen Ändern (kompliziertes Search and Replace) und Speichern XML & JSON 12
S XML lesen und schreiben XML & JSON 2
Q Atom/RSS-Feed lesen - per XSD zu Java-Code XML & JSON 4
K JAXB: Klassen mit Annotation Lesen/Schreiben XML XML & JSON 3
O PDF mit Pdfbox lesen XML & JSON 3
S XMLStreamReader, letzten eintrag eines xml lesen? XML & JSON 5
N MalformedByteSequenceException bei Lesen aus XML Datei XML & JSON 2
Mike90 Daten aus DB in ExcelTabelle lesen + bearbeiten + formatieren XML & JSON 2
Mike90 -xlsx Dateien in Java lesen XML & JSON 3
Fadi .classpath(XML) mit Java lesen XML & JSON 2
J Problem beim XML-Lesen XML & JSON 2
J Logdaten als XML speichern und lesen XML & JSON 2
J XML lesen schreiben XML & JSON 7
N jdom problem beim lesen von child elementen XML & JSON 5
N problem bei xml lesen mit jdom XML & JSON 2
T Xml lesen und in .txt zeilenweise schreiben XML & JSON 4
L Einfaches XML Lesen und Schreiben XML & JSON 4
C SAX Probleme beim lesen XML & JSON 4
O OpenDocument-Tabelle mit Java lesen und schreiben XML & JSON 3
R key aus xml lesen mittels jdom XML & JSON 5
F XML ( ca. 280 MB) JDom & SAXBuilder lesen = OutOfMemoryE XML & JSON 4
O XML lesen, wenn DTD in anderem Verzeichnis XML & JSON 2
R Daten aus xml lesen und in Strings speichern XML & JSON 4
R xml mit Jdom lesen und als Jtree anzeigen. XML & JSON 9
J Jdom Elemente lesen XML & JSON 5
thE_29 Vor dem ersten Posten bitte lesen! XML & JSON 0

Ähnliche Java Themen

Neue Themen


Oben