• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

XML Parsing in HTML, überprüfen ob Tag exisitiert

Mo_

Neues Mitglied
Hallo zusammen, ich hab ein Problem beim Parsing von XML. Ich habe eine XML Datei die Kapitel enthält, welche Jeweils eine Überschrift und Text enthalten. Manche Kapitel enthalten zusätzlich noch eine Tabelle, ander dagegen nicht. Beispiel:

Code:
    <CHAPTER>
        <TITLE>
        Kapitel 1
        </TITLE>
       
        <TEXT>
        Test 123
        </TEXT>
       
        <TABLE>
            <TABLEX>
            Test X
            </TABLEX>
       
            <TABLEY>
            Test Y
            </TABLEY>
        </TABLE>   
    </CHAPTER>

    <CHAPTER>
        <TITLE>
        Kapitel 2
        </TITLE>
       
        <TEXT>
        Test 1234
        </TEXT>
    </CHAPTER>

Nun möchte ich diese Datei mithilfe von HTML darstellen, dazu verwende ich folgende schleife:

HTML:
var x=xmlDoc.getElementsByTagName("CHAPTER");
for (i=0;i<x.length;i++)
  {
  document.write("<p><strong>");
  document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
  document.write("</p></strong>");
  document.write("<p>");
  document.write(x[i].getElementsByTagName("TEXT")[0].childNodes[0].nodeValue);
  document.write("</p>");
}

Zusätzlich soll die Schleife abger, sofern vorhanden, auch die Tabellen darstellen. Allerdings muss sie dazu erst überprüfen ob der Tag mit dem Namen "TABLE" exisitiert. Nach einer TagID kann man ja wie folgt suchen:

HTML:
var myElem = document.getElementById('myElementId');
if (myElem == null) alert('does not exist!');

Allerdings funktioniert dies nur für ElementByID und nicht für ElementByTag, leider kann ich eine XML datei nur nach Tags abfragen. Gibt es also eine simple Möglichkeit nach der Existenz eines Tags zu suchen?

Hoffe ich habe mich klar ausgedrückt und nicht unnötig viel geschrieben!

viele Grüße,

-M.
 
Äm, XML kennt keine Tabellen. Dafür ist diplay:tabel vorgesehen.

Aus dem XML dokument lässt sich aber eine Tabelle erzeugen, ich hatte mir das ungefähr so vorgestellt:

HTML:
  document.write("<table>");
  document.write("<tr><td>");
  document.write(x[i].getElementsByTagName("TABLEX")[0].childNodes[0].nodeValue);
  document.write("</td><td>");
  document.write(x[i].getElementsByTagName("TABLEY")[0].childNodes[0].nodeValue);
  document.write("</td></tr>");
  document.write("</table>");

Aber das mit der Tabelle war sowieso nur als Beispiel gedacht. Eigentlich geht es mir um Optionale Komponenten bei den jeweiligen <CHAPTER>, die ich abfragen kann.
 
Nur mal so am Rande: Ist es zwingend notwendig, die Daten als XMLauszuwerten? Ein moderneres Datenaustauschformat wie JSON würde die Aufgabe komfortabler gestalten.
 
Zurück
Oben