Xpath & JDOM Element Pfad ausgeben

TJava

Bekanntes Mitglied
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]
 
Danke und hier ist die Lösung🙂
Wo kann ich denn genau den BLog anlegen?



Java:
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;
	}

}
 

Zurück
Oben