Thomas: Zugriff auf XML-File

Gibt es eine Möglichkeit, mit JavaScript auf XML-Dateien zuzugreifen??

Hintergrund:
Ich verwende öfters .js Bibliotheken, die Objektdaten enthalten. Diese .js Files generiere in der Regel aus einer kleinen Datenbank-Applikation.
Z.B.: Datenbank mit Produktinfos -> js.File mit eben diesen Produktdaten -> HTML Files und JavaScripts zur Aufbereitung dieser Daten aus den JS-Objekten.

Nun überlege ich, ob nicht XML eine Vereinfachung bringen könnte. Wenn es möglich ist, mit JavaScript ein XML-File zu iterieren und auf Knoten gezielt zuzugreifen, wäre das für manche Anwendungsfälle eine ideale Lösung.
Wohlgemerkt: Mir geht es um den Inhalt und Weiterverarbeitung der XML-Knoten. Eine Visualisierung des gesamten XML-Files mit CSS wäre zuwenig.

Hoffe, dass ich mich verständlich ausgedrückt habe und hoffe auf zielführende Antworten aus der Forumsgemeinde!

Danke!
Thomas

  1. Gibt es eine Möglichkeit, mit JavaScript auf XML-Dateien zuzugreifen??

    ja. sogar ziemlich viele. kommt darauf an was du machen willst.

    für NS6 geht das so:
    http://forum.de.selfhtml.org/archiv/2001/11/161/#m1067

    für IE host du dir am besten die beispile vom wrox
    http://www.wrox.com/Books/Book_down.asp?sub_section=1&isbn=1861001576&subject=XML&subject_id=30

    grüße
    thomas

    1. Danke für die Antwort! Werde mir die Codebeispiele zu Gemüte führen.

      Frustrierend die Tatsache, dass man wiedermal verschiedene Wege gehen muss, um (wenigstens) die zwei wichtigsten Browser zu unterstützen...
      Und beim NN gar erst ab der Version 6. :-(

      Gibt es eine Möglichkeit, mit JavaScript auf XML-Dateien zuzugreifen??

      ja. sogar ziemlich viele. kommt darauf an was du machen willst.

      für NS6 geht das so:
      http://forum.de.selfhtml.org/archiv/2001/11/161/#m1067

      für IE host du dir am besten die beispile vom wrox
      http://www.wrox.com/Books/Book_down.asp?sub_section=1&isbn=1861001576&subject=XML&subject_id=30

      grüße
      thomas

      1. Hi

        Danke für die Antwort! Werde mir die Codebeispiele zu Gemüte führen.

        Frustrierend die Tatsache, dass man wiedermal verschiedene Wege gehen muss, um (wenigstens) die zwei wichtigsten Browser zu unterstützen...
        Und beim NN gar erst ab der Version 6. :-(

        Wie komplex sind denn deine Daten? Und muss es unbedingt XML sein?

        Wenn du alles in JS-Arrays/Objekte ablegst kannst du 1a darauf zugreifen,
        ohne ständig parsen zu müssen. Schau dir mal die JS-Suche fuer Selfhtml 8 an.

        Oder

        Du legst deine XML-daten als String in eine JS-Variable und parst die
        Daten mit RegExp aus! Dann klapt es auch mit dem NNachbarn ;)

        Tschau
        Rolf

        1. Wie komplex sind denn deine Daten? Und muss es unbedingt XML sein?
          Wenn du alles in JS-Arrays/Objekte ablegst kannst du 1a darauf zugreifen,
          ohne ständig parsen zu müssen.

          Nicht wirklich sehr komplex.
          Relationale Datensätze mit bis zu 5 Hierarchie-Stufen.
          Insgesamt (über alle Tables) einige Hundert Datensätze.

          Nein, es muss nicht unbedingt XML sein. Derzeit werden die Daten eh in JS-Objekten abgelegt. Und darum kümmert sich eine Exportroutine, die die Daten aus einer kleinen Access-DB in das JS-File schaufelt.
          Die Idee ist nun, statt der Access-mdb gleich ein XML-File als Datenquelle zu verwenden, welches ohne jegliche Konvertierung auch gleich als Datenursprung für die HTML-Seiten dienen kann.

          Spricht außer den höheren Browseranforderungen (>= IE 5, >= NN 6) sonst etwas gegen dieses Konzept??

          1. Hallo,

            Spricht außer den höheren Browseranforderungen (>= IE 5, >= NN 6) sonst etwas gegen dieses Konzept??

            ja. aber nur in abhängigkeit dessen was du genau machen willst mit deiner xml.
            sollstes du xsl auch anwenden wollen. brauchst du serverseitege verarbeitung, da es einfach zu viele IE versionen mit zu vielen MSXML versionen verbreitet sind.

            grüße
            thomas

          2. Hi Thomas

            Wie komplex sind denn deine Daten? Und muss es unbedingt XML sein?
            Wenn du alles in JS-Arrays/Objekte ablegst kannst du 1a darauf zugreifen,
            ohne ständig parsen zu müssen.

            Nicht wirklich sehr komplex.
            Relationale Datensätze mit bis zu 5 Hierarchie-Stufen.
            Insgesamt (über alle Tables) einige Hundert Datensätze.

            Hmm das ist schon zu happig, ich hab mal einen rudimentaeren XML-Parser
            in JS gemacht ueber 2 Hierarchiestufen geschrieben, das geht noch aber bei wuerde
            mein IE5 sehr langsam (NN ist viel schneller!) werden bis alles in ne
            Arrayhierarchie uebertragen ist.

            Wenn du nur lesezugriffe auf einzeldaten brauchst kannste auch RegExp
            dynamisch bauen, also sowas wie

            Ergebnis=XML.match(/<tag1>.*<tag2>.*<tag3>([^<]*)</tag3>.*</tag2>.*</tag3>/)

            XML waer dabei ein String der die Daten enthaelt!

            Probleme hier waeren dann greedy * oder verschachtelte tags gleichen Namens,
            dh. es kommt sehr auf den Aufbau deiner Daten an. Attribute und DTDs fallen
            dabei auch untermn Tisch!

            Hab auch mal nen hochkomplizierte XML-Parser im Netz gesehen der in einer RegExp
            realisiert war, mit dem Hinweis dass er in JS, Java, Perl, etc lauffaehig waere.

            Deren onlinebeispiel  lief dann aber gerade nicht mit JS!

            Mein Rat: Konvertier lieber Serverseitig die XML-Daten in JS-Arrays, und wenn
            genuegen Browser Clientseitig damit umgehen koennen, ueberleg dir dann
            ob du direkt das XML-File schickst!

            Viele GrueBe
            Rolf