Einlesen der XML-Dateien per Skript

(Auszug aus "Das Einsteigerseminar SVG — Webgrafiken mit XML" von Helma Spona)

Wesentlich für die Formatierung der Diagramme ist natürlich, dass die gewünschten Formatierungen und Werte auch aus der XML-Datei ausgelesen werden. Dazu müssen Sie die XML-Datei als XMLDOM-Objekt öffnen und das XML-DOM mit den bekannten Methoden und Eigenschaften auslesen.

Die XML-Dateien, die die Einstellungen speichern, sehen dann wie folgt aus. Sie speichern in Form von Attributen für den übergeordneten Tag die Formatierungen und Titel für die Diagramme. In den untergeordneten Tags werden dann die Werte, Farben und Namen für die Datenreihen gespeichert.

<?xml version="1.0" encoding="ISO-8859-1"?>
<DIAGRAMM titel="Marktanteile Webbrowser" maxhoehe="110" xAchse="Browser" yAchse="Marktanteil in %" titelx="20" titely="20" titelhoehe="18" diagrammbreite="220" titelcolor="" titelbgcolor="">
  <REIHE>
    <NAME>Internet Explorer</NAME>
    <FARBE>red</FARBE>
    <WERT>60</WERT>
  </REIHE>
  <REIHE>
    <NAME>Netscape Navigator</NAME>
    <FARBE>orange</FARBE><WERT>20</WERT>
  </REIHE>
  <REIHE>
    <NAME>Opera</NAME>
    <FARBE>yellow</FARBE>
    <WERT>15</WERT>
  </REIHE>
  <REIHE>
    <NAME>Sonstige</NAME>
    <FARBE>darkred</FARBE>
    <WERT>5</WERT>
  </REIHE>
</DIAGRAMM>

Um die XML-Datei zu öffnen, benötigen Sie eine Variable, hier ObjXML, der Sie ein ActiveX-Object zuweisen. Das Objekt können Sie mit new ActiveXObject("microsoft.xmldom") erzeugen. Damit haben Sie jedoch nur ein leeres Objekt. Um es mit Inhalt zu füllen, verwenden Sie die load-Methode. Ihr übergeben Sie den Namen der zu öffnenden XML-Datei. Der Zugriff auf die Elemente der XML-Datei erfolgt wieder über die Methode getAttribute. Damit werden dann die Attribute des übergeordneten Tags ausgelesen.

function INIT(DIAGName)
  {
    // Einlesen der XML-Datei und Initialisieren der Variablen
    var ObjXML=new ActiveXObject("microsoft.xmldom");
    var i=0;
    var Root;
    var Reihe;
    var NAME=0;
    var FARBE=1;
    var WERT=2;
    
    ObjXML.load(DIAGName +".xml");
    Root=ObjXML.documentElement;
    //Diagrammattribute auslesen
    MaxHoehe=Root.getAttribute("maxhoehe");
    DiagTitel=Root.getAttribute("titel");
    xtext=Root.getAttribute("xAchse");
    ytext=Root.getAttribute("yAchse");
    xtitel=Root.getAttribute("titelx");
    ytitel=Root.getAttribute("titely");
    MaxBreite=Root.getAttribute("diagrammbreite");
    hoehetitel=Root.getAttribute("titelhoehe");
    titelcolor=Root.getAttribute("titelcolor");
    titelbgcolor=Root.getAttribute("titelbgcolor");
  ...

Um die Werte und Farben der einzelnen Datenreihen auszulesen und in Arrays zu speichern, wird eine Schleife verwendet, die von 0 bis 3 läuft. Der Zugriff auf die einzelne Reihe erfolgt über die item-Methode des ChildNode-Objekts. Ihr wird der Index übergeben und über die childNodes-Auflistung wird wieder auf die untergeordneten Elemente zugegriffen. Dazu werden der besseren Lesbarkeit wegen die Konstanten WERT, NAME und FARBE verwendet.

  ...
  //durchlaufen des XML-Dokuments
  for (i=0;i<=3;i++)
  {
    Reihe=Root.childNodes.item(i);
    werte[i]=Reihe.childNodes.item(WERT).text;
    texte[i]=Reihe.childNodes.item(NAME).text;
    farben[i]=Reihe.childNodes.item(FARBE).text;
  }
    
  // Formatieren des Diagramms
  SVGDoc=document.getElementById(DIAGName).getSVGDocument();
  INITDiagramm(SVGDoc);
}

   

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema SVG bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © verlag moderne industrie GmbH 2001
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Das Einsteigerseminar SVG — Webgrafiken mit XML" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

verlag moderne industrie GmbH, Justus-von-Liebig-Straße 1, D-86899 Landsberg/Lech, fon ++49 (0) 81 91 / 125 – 0, leserservice(at)mi-verlag.de