Roadster: Texte aus XML-Datei mit Absätzen versehen?

Beitrag lesen

Hallo miteinander!

Bislang hatte ich es so gehandhabt, dass ich die Texte für meine Webseite aus externen txt-Datein per JavaScript eingebunden habe, aber angesichts der Fülle an Material erscheint es mir irgendwie praktischer, statt 1001 Textdateien auf Vorrat zu halten, statt dessen die Texte in eine (oder auch mehrere - jedenfalls < 1001) XML-Datei(en) zu packen...

Während mein JS-Code zum einbinden der Texte bislang so aussah

function openTextBox1(){  
var request=new XMLHttpRequest();  
request.open("get","text1.txt");  
request.send();  
request.addEventListener("load",function(e){  
var text=e.target.responseText;  
addTextBox("titel1",text);});}

habe ich nun einmal Folgendes versucht

function openTextBox1(){  
var request=new XMLHttpRequest();  
request.open("get","text.xml");  
request.send();  
request.addEventListener("load",function(e){  
var xmlNodes=e.target.responseXML;  
var doc=xmlNodes.getElementsByTagName("TEXT1");  
var txt="";  
for(i=0;i<doc.length;i++){  
var text=txt+doc[i].childNodes[0].nodeValue;}  
addTextBox("titel1",text);});}

wobei die XML-Datei so ausschaut:

<?xml version="1.0" encoding="UTF-8"?>  
<TEXTE>  
   <TEXT1>  
      Test Text Test Text Test Text  
   </TEXT1>  
</TEXTE>

Ohne dass ich genau verstehen würde warum, funktioniert das auch und der Text wird in die (mittels der Funktion addTextBox(Parameter für Titel, Parameter für Text); dynamisch erstellte DIV-Box geladen und richtig angezeigt.

Das Problem, dass ich nun habe ist, dass ich in meine Texte zumindest ein Minimum an Struktur bringen, sprich, Absätze einfügen muss!

Bislang war das mit der zuerst dargelegten Methode kein Problem: Da habe ich einfach an den entsprechenden Stellen im Text (in den externen txt-Dateien) <br> eingefügt.

Das funktioniert aber mit XML natürlich nicht mehr, da jedes <br> als neuer Knoten angesehen wird, der sein End-TAG benötigt (was wiederum mit HTML kollidiert).

Ich nehme an, ich müsste also die einzelnen Absätze eines Textes in der XML-Datei auf mehrere
Nodes verteilen, also etwa so

<?xml version="1.0" encoding="UTF-8"?>  
<TEXTE>  
   <TEXT1ABS>  
        Test Text Abs 1 Test Text Abs 1  
   </TEXT1ABS>  
   <TEXT1ABS>  
        Test Text Abs 2 Test Text Abs 2  
   </TEXT1ABS>  
</TEXTE>

um dann in der JS-Funktion an entsprechender Stelle irgendwie ein var text=txt+ +"<br>"+ +"<br>"; oder so ähnlich einzufügen. Aber ich bekomme es, im wesentlichen natürlich aufgrund meiner mangelhaften JS-Kenntnisse, einfach nicht gebacken, die Funktion so zu schreiben, dass ALLE Nodes aus der XML-Datei hintereinander weg dargestellt werden, sondern wenn überhaupt, dann immer nur der 'letzte' gleichnamige Knoten aus der Node-List...

Falls jemand mir sagen könnte, wie ich die JS-Funktion für den erstrebten Zweck umschreiben kann, oder jemand eine Idee hat, die Absätze auf andere Art (in XML direkt?) einzufügen, sei ihm oder ihr mein Dank sicher! ;)

Beste Grüße,

Roadster.