AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XML darstellen

Ein Thema von woody · begonnen am 3. Nov 2003 · letzter Beitrag vom 4. Nov 2003
Antwort Antwort
woody

Registriert seit: 7. Okt 2003
7 Beiträge
 
#1

XML darstellen

  Alt 3. Nov 2003, 09:08
hi,

möchte eine XML-datei, welche als datenbank genutzt wird, gut leserlich darstellen. hab zuerst xsl probiert, was auch sehr gut fuktioniert hat. jedoch ändert sich die xml datei öfters und somit verschwindet auch der interne pfad zur xsl-datei. gibt es noch andere möglichkeiten, ohne das man etwas in die XML-datei schreiben muß?


grüße
woody
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: XML darstellen

  Alt 4. Nov 2003, 09:05
Zitat von woody:
jedoch ändert sich die xml datei öfters und somit verschwindet auch der interne pfad zur xsl-datei.
Wie das? Eigentlich gehört die Angabe des XSL-Stylesheets doch mit zum (ich nenn´s mal so) Header. Und da man doch normalerweise nur den Content ändert, müsste man bei Änderungen der Tags usw. bestenfalls die XSL-Datei anpassen.
Man kann so eine Angabe auch später einfügen, wenn die XML-Datei bereits fertig ist. Beispiel mit dem MS-XML-Parser:
Delphi-Quellcode:
// die XML-Datei laden
{ ... }


fFound := false;
nl := xmldoc.Get_childNodes;
for i := 0 to nl.length - 1 do
  // es gibt bereits einen Eintrag
  if(nl.item[i].Get_nodeType = NODE_PROCESSING_INSTRUCTION) and
    (nl.item[i].Get_nodeName = 'xml-stylesheet') then
  begin
    // in dem Fall den Wert ignorieren und stattdessen
    // die gewünschte XSL-Datei eintragen
    nl.item[i].text := 'href="../../MO.xsl" type="text/xsl"';
    fFound := true;
    break;
  end;

// ansonsten komplett neu erstellen, ...
if(not fFound) then begin
  node := xmldoc.documentElement;
  pi := xmldoc.createProcessingInstruction('xml-stylesheet',
    'href="../../MO.xsl" type="text/xsl"');

// und VOR dem ersten Knoten einhängen
  xmldoc.insertBefore(pi,node);
end;

// XML-Datei speichern, und fertig!
{ ... }
"pi" ist vom Typ "IXMLDOMProcessingInstruction", "node" ist ein "IXMLDOMNode", "fFound" ist eine Bool-Variable.

Zitat:
gibt es noch andere möglichkeiten, ohne das man etwas in die XML-datei schreiben muß?
Selbst parsen. Dazu bräuchtest du ein Minimal-Programm mit einem TWebBrowser bspw. Dann lädtst du die XML-Datei und sorgst im Programm dafür, dass die Tags richtig (oder wie gewünscht) dargestellt werden.

Gruß.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz