# Xpath & JDOM Element Pfad ausgeben



## TJava (6. Apr 2011)

Hallo ich habe folgende Datei, diese erstellt mir eine Ordnerstruktur. Nun möchte ich gerne das Dokument lesen und die Pfad angaben zu diesen Elementen haben.
Bsp.: 
/WorkspaceAutoIt/Hilfsdateien/SF0-Dateien/NA
/WorkspaceAutoIt/Hilfsdateien/SQL_Script

Guten Morgen 

[XML]<dirs baseDir="/WorkspaceAutoIt">



	<dir name="Hilfsdateien">

		<dir name="SF0-Dateien" AutoItFileType="SF0_SCRIPT">
			<dir name="NA" AutoItFileType="NA_FILE"></dir>
		</dir>

		<dir name="SQL-Dateien" AutoItFileType="SQL_SCRIPT"></dir>

		<dir name="X400"></dir>

		<dir name="Diskette"></dir>

		<dir name="Andere_Dateien"></dir>

	</dir>

	<dir name="Hilfstools">
	</dir>

	<dir name="Logs">
		<dir name="ServerDateien"></dir>
		<dir name="Vergleichsdokumente"></dir>
	</dir>

	<dir name="Referenzdocs" AutoItFileType="REF_FILE">
	</dir>

	<dir name="Skripte">
	</dir>

	<dir name="Standardskripte">
		<dir name="test"></dir>
	</dir>

</dirs>[/XML]


----------



## musiKk (6. Apr 2011)

Cool, viel Erfolg. Wenn Du ein Tagebuch führen möchtest, kannst Du Dir hier im Forum einen Blog anlegen.


----------



## TJava (6. Apr 2011)

Danke und hier ist die Lösung
Wo kann ich denn genau den BLog anlegen?




```
import java.io.File;
import java.io.IOException;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class GetFolder {

	private String fileTypeName;
	private File folder;

	public GetFolder(String fileTypeName) throws JDOMException, IOException {
		this.fileTypeName = fileTypeName;

		SAXBuilder builder = new SAXBuilder();
		Document doc = builder.build(new File("AutoItWorkspace.xml"));
		Element root = doc.getRootElement();

		File baseDir = new File(root.getAttribute("baseDir").getValue());

		List<Element> dirs = root.getChildren("dir");
		for (Element dir : dirs) {
			_makeDirs(baseDir, dir, fileTypeName);

		}
	}

	private File _makeDirs(File parent, Element dir, String fileTypeName) {
		File file = new File(parent, dir.getAttribute("name").getValue());

		String vergleich = dir.getAttribute("FileType").getValue();

		if (vergleich.contentEquals(fileTypeName)) {
			this.folder = file;
		} else {

		}

		List<Element> children = dir.getChildren("dir");
		if (!children.isEmpty()) {
			for (Element child : children) {
				_makeDirs(file, child, this.fileTypeName);
			}
		}
		return null;
	}

	public File getFolder() {
		return this.folder;
	}

}
```


----------

