Rekursiver Verzeichniss Baum in XML & XPath

Status
Nicht offen für weitere Antworten.
T

theomega

Gast
Hallo Leute,
ich habe eine XML-Datei in folgendem Format:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<JDuplicateFinderFile basepath="C:\apache">
  <folder path="">
    <folder path="/Apache">
      <folder path="/Apache/logs">
        </file>
        <file name="error.log" size="2533134" lastmodified="1109173436000" canRead="true" canWrite="true" isHidden="false">
        </file>
        <file name="httpd.pid" size="6" lastmodified="1109359650000" canRead="true" canWrite="true" isHidden="false">
        </file>
      </folder>

ich will jetzt gerne auf eine bestimmte Datei zugreifen, deren Pfad ich kenne. Aufgrund dieser AUfgabe habe ich an XPath gedacht, leider sind meine Kenntnisse darin recht beschränkt. Trotzdem habe ich mit JDom und XPath folgendes KOnstriuiert:
Code:
			Object test = XPath.selectSingleNode(doc,"/child::JDuplicateFinderFile/child::folder/attribute::path[(child::text() = \"\")]");
			if (test!=null) {
				System.out.println("Found");
			}
			else {
				System.out.println("Nothing found");
			}

damit sollte ja der erste Folder-Eintrag ausgewählt werden, wird er aber nicht! Oder gibt es eine simplerer Lösung, wenn ich als Pfad weiß /Apache/logs/error.log an das Element zu kommen?

Danke und Gruß
TO
 

clemson

Bekanntes Mitglied
es kommt drauf an, wie 'genau' du deine abfrage machen möchtest...

du kannst dir beispielsweise das file Element mit dem attribut name folgendermaßen holen

//*[@name='error.log']

die gefahr hierbei ist, sobald es (wahrscheinlich) mehrere dateien mit dem namen error.log gibt.


genauer kannst du zugreifen mit

//folder/folder/file[@name='error.log']
 
T

theomega

Gast
aber selbst das ist doch nicht eindeutig, theoretisch könnte es doch noch eine Datei mit dem namen error.log geben die 2 Order unterhalb der Hauptebene liegt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben