Auf bestimmtes Element im XML zugreifen

Status
Nicht offen für weitere Antworten.
K

KartoffelKiffer

Gast
Hallo,

ich habe mir folgendes SAX-Konstrukt geschaffen:

Code:
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
import java.io.*;
import org.xml.sax.Attributes; 
import org.xml.sax.SAXException;

public class Sax {

	public static void main(String[] args) {
		
		try {
		
			new Sax().createSaxParser();
		} catch (Exception e) {
			
			System.out.println("Erstellen des SAX-Parsers nicht möglich.");
		}
	}
	
	private void createSaxParser() throws Exception {
		
		SAXParserFactory factory = SAXParserFactory.newInstance(); 
		SAXParser saxParser = factory.newSAXParser();
		
		DefaultHandler handler = new Handler();
		saxParser.parse(new File("/home/tom/Desktop/test.xml"), handler);
	}
}

class Handler extends DefaultHandler {
	
	@Override 
	public void startDocument() { 
	
		System.out.println("Start"); 
	}	 
	@Override 
	public void endDocument() { 
	
		System.out.println("Ende"); 
	}
	@Override 
	public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { 

		System.out.println("Element: " + qName); 
	 
		for (int i = 0; i < atts.getLength(); i++) {
				
			System.out.println("Attribut" + i + ": " + atts.getQName(i) + " = " + atts.getValue(i));
		}
	}
	@Override 
	public void characters(char[] ch, int start, int length) { 
	
		System.out.println("Inhalt:"); 
	
		for (int i = start; i < (start + length); i++) {
			
			System.out.print(ch[i]); 
		}	
		System.out.println(); 
	}
}

Funktioniert auch einwandfrei, es wird jedes mögliche XML korrekt ausgelesen.

Nun möchte ich jetzt auf ein bestimmtes Element, das durch Namen des Elements und dessen Attribut identifiziert wird, in meinem XML zugreifen. Ist dies mittels SAX-Parser auch möglich?

Bsp.:
<?xml...
<main>
<child1>nich von interesse</child1>
<child2 attr="hier">das m&chte ich auslesen</child2>
</main>

Auf mein child2 im Main-Element main mit dem Attribut attr = "hier" soll zugegriffen werden.

Leider bekomme ich dies nicht so recht hin, deshalb benötige ich Eure Hilfe.



Mfg Tom
 

eric

Aktives Mitglied
sinngemäß folgendes:
- in der startElement-Methode auf den gesuchten Namen prüfen
- im gefunden Element alle Attribute prüfen

Für solche Fälle gibts aber andere Techniken wie XPath.
 

eric

Aktives Mitglied
Für was willst eine Empfehlung?

Reicht Dir zum Auslesen XPath nicht?
Falls Du das XML in Objekte überführen willst, um mit denen weiterzuarbeiten, such mal nach JAXB

Aber für den Anfang ist SAX erstmal genau richtig, dann DOM, daraus ergibt sich automatisch XPath u.s.w.

Grüße Eric
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N bestimmtes Element auslesen - ich verzweifel XML & JSON 3
8u3631984 jaxb XML Mapper - Root Element mit Attribut XML & JSON 20
B DOMParser - Element filtern XML & JSON 1
N jdom2 - Referenz auf Nested Element XML & JSON 2
H XML Element `Class` wird nicht gelesen XML & JSON 2
F xml Element ersetzen XML & JSON 5
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
W XML-Element komplett löschen XML & JSON 5
L XML nur ein Element einlesen XML & JSON 2
R XSD in einer choice mehrmals das selbe element möglich XML & JSON 5
S JDom XML ein Element hinzufügen. XML & JSON 1
ARadauer xsd ref auf element oder typen verwenden? XML & JSON 2
R cvc-complex-type.3.2.2: Attribute 'uuid' is not allowed to appear in element 'jasperReport'. XML & JSON 4
F EMF, XSD to ECore mapping, Attribute vs. Element XML & JSON 2
C xml validierung gegen xsd mit jdom: Fehlermeldung Cannot find the declaration of element ... XML & JSON 8
Landei JAXB: Wert von übergeordneten Element XML & JSON 4
N Alle namespaces ins Root Element hinauf ziehen XML & JSON 2
N Alle namespaces ins Root Element hinauf ziehen XML & JSON 2
S Validierung mit JAXB2 ohne root-element XML & JSON 10
E xml Element sortieren XML & JSON 2
T Xpath & JDOM Element Pfad ausgeben XML & JSON 2
Z XML parsen - Element mit Werten XML & JSON 2
enne87 Element-Werte werden falsch ausgelesen XML & JSON 2
M XSD - Child Element möglich, aber nicht zwingend erforderlich XML & JSON 6
N Individuelles Wrapper-Element um Collection mit JAXB XML & JSON 6
W Element mit XPath @id ermitteln wenn nur ein teil der id bekannt ist XML & JSON 2
R Element - Ausgeben von Kommentar XML & JSON 4
L Element manipulieren in einem DOMResult per XPath XML & JSON 10
G mit Transformer.transform ein Element überschreiben XML & JSON 2
G XSL: Element über eine Variable ermitteln XML & JSON 4
sparrow JDom Element.getChild("Name") liefert null obwohl vorhanden XML & JSON 4
B XML-Element als String ausgeben XML & JSON 5
L Element einlesen <Telefon name="Karl">134313 XML & JSON 2
S Cannot find the declaration of element XML & JSON 2
M Jaxb Annotationen, Wert als XML Element XML & JSON 2
O XML Element mit ":" im Namen XML & JSON 23
G Element mit Text und Unterelement XML & JSON 2
S Ampersand im Jdom-Element XML & JSON 2
C jdom.Element nicht vorhanden? XML & JSON 4
W JDOM element ändern funzt nich :( [problem gelöst] XML & JSON 3
M XML einlesen - prüfen ob Element vorhanden XML & JSON 2
F choice-Element mit minOccurs=0" XML & JSON 11
X Xpath, alle Element die mit "user" beginnen auswäh XML & JSON 2
C Mehrere Element_Nodes zusammenfassen zu einem Element XML & JSON 9
M JDOM und XPath, zu Element zugehörigen XPath-Ausdruck XML & JSON 5
H Adapter: String->Element bzw. Element->String XML & JSON 6
M JDOM Element ohne Inhalt kopieren ? XML & JSON 3
S String in element casten XML & JSON 2
S Element hinzufügen XML & JSON 2
B Element an bestimmter Stelle einfügen (JDOM) XML & JSON 8
S zum element Attribut xmlns zufügen XML & JSON 6
J [Newbie] [JDOM] Element aus XML entfernen klappt nicht XML & JSON 4
P [Solved] XSL: Element-Variable auslesen XML & JSON 2
Noar XSLT - Element-Wrapping XML & JSON 2
R JDOM Root-Element entfernen aber Rest behalten XML & JSON 10
S Element addContent(Element) gibts nicht XML & JSON 5
R node.getNodeValue() bringt mir komplettes CDATA-Element XML & JSON 3
W Element Liste in Root XML & JSON 5
D Text, String vor einem Root Element einfügen XML & JSON 2
W root element parsen,Hilfe! XML & JSON 5
E Element.setTextContent(String); Ersatz fuer Version 1.4? XML & JSON 3
A NullPointerException bei leerem Element XML & JSON 4
D XML: Element section content does not follow the DTD XML & JSON 6
clemson element mit id in jdom löschen XML & JSON 2
A Element an einer bestimmten Stelle einfügen (nicht am Ende) XML & JSON 4
R JDom: XML Code von Element, und: ist Element ein standalone XML & JSON 2
ms_cikar Excel Dateien über Dropbox zugreifen XML & JSON 0
A Mehrere Anwender sollen auf eine XML-Datei zugreifen XML & JSON 4

Ähnliche Java Themen

Neue Themen


Oben