Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Wie in XML-Datei sortieren? (https://www.delphipraxis.net/46747-wie-xml-datei-sortieren.html)

toko 2. Jun 2005 18:01

Re: Wie in XML-Datei sortieren?
 
Hallo,

eine kliztekleine Frage habe ich noch zur Sortierung. :oops: Ich wiederhole noch mal kurz, ob ich euch auch Verstanden habe:
Der Format-String(also diese
XML-Code:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
  <xsl:template match="/ | @* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()">
        <xsl:sort select="[color=#ff001f]%s[/color]"/>
      </xsl:apply-templates>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>
XSL-Daten), der dem resourcenstring "fmtXSLdata" zugewiesen und der Formatierungsroutine "Format" übergeben werden soll, soll den Formatbezeichner "%s" enthalten (also so wie oben). Für s soll nun das Knotenattribut @id, @titel, @interpret, oder @genre gesetzt werden (unten ist in diesem Fall @titel eingetragen). Mit
Code:
  xmlDoc.loadXML(xmlDoc.transformNode(xmlStyle));
arbeite ich auf dem DomObjekt (die XSL-Daten mit dem übergebenen Knotenattribut). Im Ganzen dann
Delphi-Quellcode:
procedure TfrmMain.sortXMLFile;
var
  xmlStyle: IXMLDOMDocument;
  i : integer;
begin
  xmlStyle := CoDomDocument.Create;
  xmlStyle.async := false;
  {nächste Zeile entfällt da der resourcenstring die XSL-Daten enthalten soll.}
  //xmlStyle.load(FAppPath + 'dataSort.xsl');
  xmlStyle.loadXML(Format(fmtXSLdata, ['@titel']));
  xmlDoc.loadXML(xmlDoc.transformNode(xmlStyle));
  cds := XMLDoc.documentElement.selectNodes('cd');
  ...
end;
Wenn das soweit richtig ist, dann sieht das so
Delphi-Quellcode:
resourcestring
  fmtXSLdata = '<?xml version="1.0"?>' +
               '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >' +
                 '<xsl:template match="/ | @* | node()">' +
                   '<xsl:copy>' +
                     '<xsl:apply-templates select="@* | node()">' +
                       '<xsl:sort select="%s"/>' +
                     '</xsl:apply-templates>' +
                   '</xsl:copy>'+
                 '</xsl:template>'+
               '</xsl:stylesheet>';
aus. Muss ja, meine Daten werden auf jedenfall sortiert. Ohne jetzt undankbar zu wirken, kann man das im Code verschönern?

Grüße

marabu 2. Jun 2005 18:28

Re: Wie in XML-Datei sortieren?
 
Alles klappt?
Nur noch schöner soll es werden?
Du meinst den resourcestring verschönern?
Der ist doch schon hübsch!

Aber ich hätte noch ein paar Hinweise für dich, die du vielleicht jetzt noch nicht einordnen kannst, aber an die du dich zu gegebener Zeit erinnern solltest.

(1) titel ist bei dir Attribut nicht nur eines Element-Typs.
(2) Wenn du dir unsicher bist, ob du ein Attribut oder ein Element zum Speichern einer Information verwenden sollst, dann nimm das Element.
(3) Wenn du dir sicher bist, es müsste ein Attribut sein, dann prüfe dich selbst.

Sobald du das Gefühl hast, darüber reden zu müssen, tue es.

marabu

toko 2. Jun 2005 19:33

Re: Wie in XML-Datei sortieren?
 
OK, bis denn dann...


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz