JDOM Elemente suchen

Status
Nicht offen für weitere Antworten.

shiRiaRu

Mitglied
Ich beschäftige mich momentan mit JDOM und der Suche von Elementen in einem Dokument.
Mein derzeitiges Problem besteht darin, dass ich Elemente bei absoluter Namensgleichheit finden möchte.
Mein Ziel ist es in einem Dokument wo auch alle Knoten gleich sein können den richtigen zu finden damit ich.
weitere Knoten an dem gesuchten abändern / löschen etc kann.

Als Beispiel sei die untere XML gegeben:

(Das Attribut ident habe ich zur eigenen Orientierung eingebaut: Es gibt die Tiefe der Knoten an.)

Grundlage für die suchbegriffe bietet momentan ein JTree:
Ich übergebe der Methode oldSearchElement

1) ein JDOM Element (am Anfang ist es das Root Element des Dokuments)
2) Einen Sichstring (in dem Falle ist es der Name des Knoten aus der JTree-Ansicht)
3) int nodelevel -> Knotentiefe im JTree
4) int nodeposition -> Position beim Parent ( z.b 3ter von 4 Knoten an einem Beliebigen Knoten )

Momentan benutzte ich nur nodeposition und searchname und konnte die Suchergebnisse
schon stark einschränken. Kann man so eine Suche nicht vielleicht einfacher machen ?
Hat da jemand erfahrung ?


Code:
<?xml version="1.0" encoding="UTF-8"?>
<tiere>
    <reptilien ident="reptilien-1.0">
		<reptilien ident="reptilien-1.1">
			<reptilien ident="reptilien-1.1.1">reptilien</reptilien>
			<reptilien ident="reptilien-1.1.2">reptilien</reptilien>
			<reptilien ident="reptilien-1.1.3">reptilien</reptilien>
      	</reptilien>
    </reptilien>
         
    <reptilien ident="reptilien-2.0">
		<reptilien ident="reptilien-2.1">
			<reptilien ident="reptilien-2.1.1">reptilien</reptilien>
			<reptilien ident="reptilien-2.1.2">reptilien</reptilien>
			<reptilien ident="reptilien-2.1.3">reptilien</reptilien>
      	</reptilien>
    </reptilien>
        
    <reptilien ident="reptilien-3.0">
		<reptilien ident="reptilien-3.1">
			<reptilien ident="reptilien-3.1.1">reptilien</reptilien>
			<reptilien ident="reptilien-3.1.2">reptilien</reptilien>
			<reptilien ident="reptilien-3.1.3">reptilien</reptilien>
      	</reptilien>
    </reptilien>
</tiere>



Code:
public static Element oldSearchElement(Element givenEL,String searchname,int nodelevel,int nodeposition)
{       
	List listMainElements = givenEL.getChildren();
	for(int i=0; i<listMainElements.size();i++)
	{
		givenEL = (Element)(listMainElements.get( i ));
		oldSearchElement(givenEL,searchname,nodelevel,nodeposition);
		
		if(givenEL.getName() == searchname  && nodeposition == i )
   		{
			TextIO.putln("Sind gleich: "+"Suchbegriff ->"+searchname+" und Elementname ->"+givenEL.getName());
			TextIO.putln("(i)->"+i+"(nodeposition)->"+nodeposition);
			foundEL = givenEL;
			counter++;
		}  		
	}
	return foundEL;
}



mfg shiRiaRu
 

René Link

Aktives Mitglied
Hi,

wenn ich dich richtig verstehe, traversierst du den XML-Baum selbst um die Knoten zu finden.
Das ist aber nicht nötig. Es gibt doch immerhin XPath.
XPath ist eine Art Query-Language. Sowie SQL für relationale Datenbanken.
Es gibt eine XPath Implementierung von http://xml.apache.org/xalan-j

In der Javadoc findest du im Paket org.apache.xpath die Klasse XPathAPI.
Damit kannst du Knoten mittels XPath auswählen.

Um etwas über XPath zu erfahren gibt es ein gutes Tutorial auf www.w3schools.com/xpath

Ach so, wenn du einen XML-Parser brauchst ... wie wäre es mit http://xml.apache.org/xerces2-j
 

shiRiaRu

Mitglied
Vielen Danke René

Ich habe mich jetzt mal intensiver mit xpath beschäftigt. Dummerweise hatte ich bis
vor 2 Wochen keine ahnung das es sowas wie Xpath gibt, da XML Newbie.
Ist echt eine tolle Sache. Ich kann jetzt Elemente bequemer suchen.
Allerdings muss ich mir noch etwas zu dem Fallbeispiel:

"XML Dokument mit absolut gleichen Knoten überlegen".

(Das aber für spätere Funktionen wie: XML teile zusammenfügen/Importieren usw).


mfg

shiRiaRu
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Elemente zählen mit JDOM in XML XML & JSON 7
M XML Elemente mit JDOM durch Text ersetzen XML & JSON 2
P JDom nimmt keine Elemente an. XML & JSON 3
M Elemente mit Prefix via JDOM erstellen XML & JSON 6
J Jdom Elemente lesen XML & JSON 5
T Elemente aus XML-File löschen (JDom) XML & JSON 9
P JDOM oder SAX XML & JSON 3
Hijo2006 Grundsätzliches zu JDOM 2.x XML & JSON 1
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
S JDOM XML Datei darstellen Fehler! XML & JSON 2
S JDom XML ein Element hinzufügen. XML & JSON 1
C JDOM: Value ohne Unterelemente auslesen XML & JSON 1
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
J JDOM XMLOutputter getPrettyFormat() XML & JSON 3
H JDOM setAttribute Reihenfolge XML & JSON 3
B XML aus einer URL im Internet lesen (JDOM) XML & JSON 4
F Aus XML mit JDOM aus Elementattributen Werte rauslesen XML & JSON 4
R sax, stax, jdom, jaxb? List von Objekten speichern und laden XML & JSON 6
C xml validierung gegen xsd mit jdom: Fehlermeldung Cannot find the declaration of element ... XML & JSON 8
T Dom, Jdom, Sax XML & JSON 8
Helgon MalformedByteSequenceException und null JDOM Attribute XML & JSON 5
Helgon JDOM schreibt nicht XML & JSON 2
A XSl mit JDom auslesen XML & JSON 1
G xml, jdom "Entität wurde referenziert aber nicht deklariert." XML & JSON 4
A XSL und JDom XML & JSON 3
G jdom-Klassen in Eclipse importieren XML & JSON 2
S JDOM ohne XML Header erzeugen? XML & JSON 2
G JDOM - aus Children-Liste ein Child direkt ansprechen ohne XPath? XML & JSON 9
S JDOM nur Attribut Name XML & JSON 2
X JDom für SOAP Dateien geeignet? XML & JSON 3
T Xpath & JDOM Element Pfad ausgeben XML & JSON 2
M XML Parsen JDOM NullPointerEcxeption XML & JSON 7
S jdom hasChildren()? XML & JSON 1
T Frage zu getContent unter jdom XML & JSON 6
Z Tutorial für JDOM (XSD-Shema) XML & JSON 3
D jdom, xml, login-system XML & JSON 4
N JDOM: XML einlesen XML & JSON 4
O Parsen einer XML mit JDOM ohne Doctype Declaration XML & JSON 2
lordcarlos jdom zu iso-8859-15 zwingen XML & JSON 4
P jdom XML-Encoding auslesen XML & JSON 12
E JDOM - letzem child Attribut hinzufügen XML & JSON 4
H Schema-Validierung mit JDOM XML & JSON 2
lordcarlos JDOM und entfernen von children XML & JSON 4
E JDOM - Problem beim Zusammenfügen zweier Dateien XML & JSON 2
T jdom.jar als Relativer Pfad in Eclipse einbinden XML & JSON 4
sparrow JDom Element.getChild("Name") liefert null obwohl vorhanden XML & JSON 4
S XML, UTF-8, JDOM und Umlaute XML & JSON 3
E XML - JDOM - Bäume: was würdet ihr hier machen? XML & JSON 11
A JDOM: Wert schreiben bzw. ändern XML & JSON 6
T JDOM Bibiliothek XML & JSON 3
K JDOM vs. DOM, Schnittstellen XML & JSON 5
P Große XML Datei mittels JDOM bearbeiten / einlesen XML & JSON 6
0x7F800000 jdom mit xml.transform inkompatibel, was soll ich nehmen? XML & JSON 2
T EXSD auslesen mit XPath und JDOM XML & JSON 8
A JDOM und Sonderzeichen < > XML & JSON 17
G Simples XML File einlesen mit JDom. Prefix not bound ? XML & JSON 2
N jdom problem beim lesen von child elementen XML & JSON 5
N problem bei xml lesen mit jdom XML & JSON 2
S Ampersand im Jdom-Element XML & JSON 2
N jdom - xslt-Verweis in .xml einfügen XML & JSON 3
S Jdom+java webstart XML & JSON 4
K html -> cyberneko -> xml -> jdom . XML & JSON 3
I JDom Text ändern XML & JSON 4
C jdom.Element nicht vorhanden? XML & JSON 4
W JDOM element ändern funzt nich :( [problem gelöst] XML & JSON 3
C XPath in JDOM klappt nicht XML & JSON 2
S Harte Nuss mit XML und JDOM XML & JSON 2
H mit JDOM Verarbeitungsanweisungen und Kommentare auslesen XML & JSON 2
B jdom: getChildren() problem XML & JSON 4
T Bild in XML per JDOM XML & JSON 4
D JDOM erzeugt leere xmlns Attribute XML & JSON 4
B jdom document aus string erzeugen? XML & JSON 1
M JDOM und XPath, zu Element zugehörigen XPath-Ausdruck XML & JSON 5
F JDOM und XPath - Problem mit Namespace ohne Prefix XML & JSON 5
T XML mit JDOM auslesen => langsam? XML & JSON 7
B jdom outputter ohne attribute XML & JSON 2
C XML encoding UTF-8 und JDOM XML & JSON 4
P Probleme mit JDom . addContent(int index,Collection c) XML & JSON 2
R key aus xml lesen mittels jdom XML & JSON 5
M JDOM Element ohne Inhalt kopieren ? XML & JSON 3
X JDOM SAXBuilder Validationschema - Problem XML & JSON 8
G einzelne tags mit jdom auslesen XML & JSON 4
F XML ( ca. 280 MB) JDom & SAXBuilder lesen = OutOfMemoryE XML & JSON 4
K JDOM SAXBuilder einlesen XML & JSON 6
S Ausgabe "asXML" mit Jdom XML & JSON 2
B Element an bestimmter Stelle einfügen (JDOM) XML & JSON 8
G XML mit JDOM ausgeben [Klappe die 1Mio.ste] XML & JSON 2
F XML mit JDOM auslesen XML & JSON 2
D JDOM auf den PC machen XML & JSON 6
J JDOM Unicode XML & JSON 2
J schema-Validierung mit xerces und jdom: bug in java 1.4? XML & JSON 9
P JDOM Werte verändern XML & JSON 4
S OutOfMemory mit JDOM XML & JSON 6
S org.jdom.document in String umwandeln. XML & JSON 2
M ISO-8859-1 >> UTF-8 + JDOM + Verwirrung. XML & JSON 2
J [Newbie] [JDOM] Element aus XML entfernen klappt nicht XML & JSON 4
J JDOM mit XML-Schema XML & JSON 8
P HTML-Sting in JDOM XML & JSON 7
B JDOM && ObjectOutputStream XML & JSON 8
B Versionskonflikt bei JDOM XML & JSON 9

Ähnliche Java Themen

Neue Themen


Oben