Anja: XML-Datei mit HTML-Tags

hallo,
folgendes Problem: Ich möchte per JS eine XML-Datei mit HTML-Tags einlesen. Was muss ich tun, damit mir das folgende Objekt korrekt angezeigt wird?

<text><![CDATA[<b>hello</b>]]>Mozilla</text>

Z.Z. sieht die Ausgabe folgendermaßen aus:

<b>hello</b>

Gruß Anja

Hier der gesamte Code:

XML-DATEI

<?xml version="1.0" encoding="UTF-8"?>
<links>
<link id="1">
<text><![CDATA[<b>hello</b>]]>Mozilla</text>
   <url>http://www.mozilla.com/</url>
</link>
<link id="2">
   <text>Microsoft</text>
   <url>http://www.microsoft.com/</url>
</link>
<link id="3">
   <text>Opera</text>
   <url>http://www.opera.com/</url>
</link>
</links>


HTML-DATEI

<html>
<head>
<title>AJAX</title>
<script type="text/javascript"><!--
var http = null;
if (window.XMLHttpRequest) {
   http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
   http = new ActiveXObject("Microsoft.XMLHTTP");
}

window.onload = function() {
   if (http != null) {
      http.open("GET", "links.xml", true);

http.onreadystatechange = ausgeben;
      http.send(null);
   }
}

function ausgeben() {
   if (http.readyState == 4) {
      var liste = document.getElementById("Liste");
      var daten = http.responseXML;
      var ergebnisse = daten.getElementsByTagName("link");
      for (var i = 0; i < ergebnisse.length; i++) {
         var name, url;
         var datum = ergebnisse[i];
         for (var j = 0; j < datum.childNodes.length; j++) {
            with (datum.childNodes[j]) {
               if (nodeName == "text") {
                  name = firstChild.nodeValue;
               } else if (nodeName == "url") {
                  url = firstChild.nodeValue;
               }
            }
         }

var p = document.createElement("p");
         var a = document.createElement("a");
         a.setAttribute("href", url);
         var txt = document.createTextNode(name);
         a.appendChild(txt);
         p.appendChild(a);
         liste.appendChild(p);
      }
   }
}
//--></script>
</head>
<body>
<ul id="Liste"></ul>
</body>
</html>

  1. Hallo,

    <text><![CDATA[<b>hello</b>]]>Mozilla</text>

    Z.Z. sieht die Ausgabe folgendermaßen aus:

    <b>hello</b>

    var p = document.createElement("p");
             var a = document.createElement("a");
             a.setAttribute("href", url);
             var txt = document.createTextNode(name);

    Verwende innerHTML anstatt einen Textknoten zu erstellen. Ein Textknoten ist immer nur ein Textknoten, wenn darin <b> steht, dann wird der Browser es nicht als HTML parsen.

    a.innerHTML = name;

    Mathias