Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#19

Re: Wie in XML-Datei sortieren?

  Alt 2. Jun 2005, 06:26
Zitat von toko:
ich hab nun folgende Prozedur:
Delphi-Quellcode:
procedure TfrmMain.sortXMLFile;
var
  xmlStyle: IXMLDOMDocument;
begin
  ...
  xmlStyle.load(FAppPath + 'data.xsl');
  xmlDoc.load(xmlDoc.transformNode(xmlStyle));
  cds := XMLDoc.documentElement.selectNodes('cd');
  ...
end;
Wenn du mit diesem Code eine Access-Violation bekommst, dann wundert mich das nicht. In der ersten Zeile lädst du den XSLT-Code. Der Aufruf der Methode transformNode() in der zweiten Zeile generiert den sortierten XML-Code, die load() Methode erwartet aber einen URL und scheitert. Als Ergebnis ist documentElement nicht instanziiert. Beim Aufruf der Methode selectNodes() knallt es dann.

In meiner ersten Antwort hatte ich dir eine Code-Zeile gegeben, deren Sinn dir vielleicht entgangen ist:

xmlDoc.loadXML(xmlDoc.transformNode(xmlStyle)); Wenn du aus einer Datei lädst, dann verwende load(), wenn du einen XML-String parsen möchtest, dann verwende loadXML().

Matthias hat dich darauf hingewiesen, dass die Transformation mit XSLT nicht direkt auf den Originaldaten durchgeführt wird. Du erhältst neuen XML-Code, den du natürlich wieder in der gleichen DOM Variable verarbeiten kannst. Beim Speichern wird dann immer deine zuletzt erstellte Sortierung gespeichert.

marabu
  Mit Zitat antworten Zitat