XML auslesen und in HTML schreiben

Teilzeitphilosoph

Erfahrenes Mitglied
Moinz.
Ich hab folgende Idee an der ich gerade bastel: Es gibt eine XML mit folgendem Inhalt

HTML:
<?xml version="1.0" ?>
<root>
    <new>
	<headline>
	    Incredible new stuff is coming up on Google.
	</headline>
	<linkname>
	    Click here!
	</linkname>
	<linkurl>
	    http://www.google.de
	</linkurl>
    </new>
</root>

und les das per JavaScript aus. Da ich mit den childNodes noch nich klarkomme und jeder Browser anscheinend so was anders interpretiert, mach ich das über

HTML:
var nodecontent01 = xmldoc.getElementsByTagName('headline');
var nodecontent02 = xmldoc.getElementsByTagName('linkname');
var nodecontent03 = xmldoc.getElementsByTagName('linkurl');

Nicht sehr elegant aber immerhin läuft es. Nun kann man ja mit

document.getElementById("wasweißich").innerHTML...

den Text auf seiner Seite austauschen und für die "headline" hab ich das schon. :D Spannend wird es jetzt aber für die "linkurl", weil daraus ein href werden soll. Der Witz dahinter ist halt, dass ich die XML beliebig erweitern kann und so relativ schnell auf meiner HTML-Seite einen Headliner mitsamt Link zum klicken poste.
Geht so was oder träume ich nur Luftschlösser?

-bedank-
TZP

##EDIT##

SCORE! Da dachte ich, ich bin zu doof dafür und dann war es nur ein Problem mit den "" gewesen.

Code:
document.getElementById("wasweißich").innerHTML = "<a href="+nodecontent03[0].childNodes[0].data+">asd</a>";

macht die Sache rund. Ich hab ein " zu wenig gehabt und dachte, es würde nich klappen. Ja ja..die Hektik und das Alter. ^^

Ungeachtet dessen: Falls jemand ne Idee für ein besseres auslesen von "data" hat, bin ich dafür jederzeit offen. Mir kommt das ziemlich umständlich vor, wenn ich für jeden TagByName eine var anlegen muss. :-(
 
Moin,

das Problem bei den childNodes ist der Umstand, dass bereits je nach Browser Spaces als Textknoten interpretiert werden.

was data anbelangt: dort ist mir kein besserer Weg bekannt, ich würd mal sagen: da ist alles optimal, einfacheren Zugriff ermöglicht JS nicht.
Wenn dir das mit den Variablen zu uständlich ist, verzichte darauf, denn sie ist garnicht notwendig, da sie eh nur eine Referenz liefert.
 
Hi.

Woher kommt denn das XML?

Falls du das auf deinem Server erzeugst, wandle es doch in JSON um, das kannst du dann einfacher mit Javascript verarbeiten.

Gruß
 
wegen den Childnodes:
Wie Sven schon richtig gesagt hat
das Problem bei den childNodes ist der Umstand, dass bereits je nach Browser Spaces als Textknoten interpretiert werden.
Du könntest allerdings mit hilfe einer schleife und nodeType herausfinden ob es ein Leerer Textknoten ist oder nicht.
 
Das kommt nich vom Server, das wird so "per Hand" erzeugt. Aber da es nur 3 Referenzen sind, will ich mir da keinen Ast bei abbrechen. Das mach ich vielleicht, wenn ich so ab 50 Knoten aufwärts bin. :)
 
Das kommt nich vom Server, das wird so "per Hand" erzeugt. Aber da es nur 3 Referenzen sind, will ich mir da keinen Ast bei abbrechen. Das mach ich vielleicht, wenn ich so ab 50 Knoten aufwärts bin. :)

Es hindert dich ja niemand, auch das json per Hand zu erzeugen :)

Code:
[
  {
    headline: 'Incredible new stuff is coming up on Google.',
    linkname: 'Click here!',
    linkurl:  'http://google.de'
  }
]

....fertsch.

Wozu erst den Umweg über XML, wenn du es nur zur Datenbevorratung verwendest.
Da ist eine Variante wie JSON, mit der JS direkt arbeiten kann, weitaus effektiver :)
 

Neue Beiträge

Zurück