Hallo ToKo,
voraus schicken möchte ich, dass ich dir bei einem Teilproblem im
XML-Bereich helfe, dir aber für dein Projekt wahrscheinlich einen Bärendienst erweise. Du sprichst von Anforderungen, aber es ist mir nicht klar, wer die formuliert hat - du selbst oder ein anderer. Ich fürchte, dass es einfach nur Entscheidungen sind, die du vor deinem persönlichen Erfahrungshorizont getroffen hast. Ich würde einen CD-Manager voll in die Windows Shell integrieren und das Speicherformat hätte ich wahrscheinlich von FreeDB übernommen.
Der lockere Hinweis von
alcaeus an dich enthält einen Wink mit dem Zaunpfahl: Wenn du alle Funktionalität in dein Stringgrid eingebaut haben wirst, dann wird jeder Betrachter sich fragen, warum du nicht gleich eine ListView genommen hast.
Aber das alles ist dein Projekt, sind deine Entscheidungen. Kommen wir zu deinem
XML-Problem.
Zitat von
toko:
Wie mache ich das genau? Wo muss ich diesen Code abspeichern? Muss ich dafür eine .XSL-Datei mit selben Namen wie die
XML-Datei anlegen?
Zuerst brauchst du eine zweite Variable xmlStyle neben deiner xmlDoc Variable. Mit xmlDoc hast du deine
XML-Daten geladen, xmlStyle nimmt den XSLT-Code auf. Bei mir sind beide vom Typ IXMLDOMDocument. Du musst abwägen, ob du nur eine oder mehrere Sortierungen benötigst. Wenn es nur um die eine Sortierung geht, dann kannst du den XSLT-Code in einer Datei mit der Erweiterung XSL speichern und diese mit xmlStyle.load() laden. Ich empfehle dir aber einen resourcestring fmtXSLsort zu verwenden, in dem du den für die Sortierung ausgewählten Knoten @titel durch %s ersetzt und vor dem Sortieren mit der Anweisung
xmlStyle.loadXML(Format(fmtXSLsort, ['@titel']));
lädst. Hier solltest du erkennen, dass mit load() eine Datei mit einem bestimmten
URL geladen wird, während mit loadXML() ein
XML-String geladen wird.
Grüße vom marabu