Hallo Noops,
Kennt jemand ein Programm mit dem man ein Ordner als Verzeichnis in einer XML Datei speichern kann. Sollte etwa so aussehen:
Im Ordner sind massig Dateien: 0001.jpg, 0002.jpg, 0003.jpg ...
Und die XML Datei soll einfach eine Liste mit den ganzen Namen schreiben:
<Ordner>
<name>0001.jpg</name>
<name>0002.jpg ...
</Ordner>
Ansatz unter Nutzung von XSLT/XPath 2.0
[speziell unter Nutzung der neuen XSLT-Funktion unparsed-text() sowie der neuen XPath-Funktion fn:tokenize()]:
1. auf der Konsole in den Ordner wechseln und dort die Namen der Dateien zeilenweise in eine Textdatei schreiben:
dir *.jpg /B > ordner.txt
2. zur Transformation dieser ordner.txt nach ordner.xml eine ordner.xsl mit diesem Inhalt ablegen:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="fn xs">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
<xsl:variable name="text" select="unparsed-text('ordner.txt','ISO-8859-1')"/>
<xsl:template match="/">
<Ordner>
<xsl:for-each select="fn:tokenize($text,'(\r)|(\n)|(\r\n)')">
<xsl:if test="fn:string-length(.) gt 0">
<name><xsl:value-of select="."/></name>
</xsl:if>
</xsl:for-each>
</Ordner>
</xsl:template>
</xsl:stylesheet>
3. Transformation mit einem XSLT 2.0-Prozessor ausführen, z. B. mit Saxon:
java -jar x:\Pfad\zu\Saxon9\Java\saxon9.jar -o:ordner.xml -xsl:ordner.xsl -s:dummy.xml
-> Ergebnis ist die Ausgabedatei ordner.xml mit der gesuchten Struktur. (Die dummy.xml kann aus einem leeren Wurzelelement, <root/> bestehen, alternativ mittels Kernow arbeiten und dort den Karteireiter "Standalone" bzw. "Eigenständiges" wählen.)
Grüße,
Thomas