molily: JSON oder XML?

Beitrag lesen

Aber wie bekomme ich es hin den String '<tr id="f22"><td>foo</td><td>bar</td></tr>' mit appendChild() an das ende einer Tabelle?

Mit appendChild direkt gar nicht.

Möglichkeit 1: Man baut sich insertAdjacentHTML im Gecko nach, das geht ungefähr so:

  
function appendHTML (element, html_string) {  
 if (element.insertAdjacentHTML) {  
  // IE und so  
  element.insertAdjacentHTML("BeforeEnd", html_string);  
 } else if (document.createRange) {  
  // Gecko  
  var range = document.createRange();  
  if (!range.selectNodeContents || !range.createContextualFragment) {  
   return false;  
  }  
  range.selectNodeContents(element);  
  var fragment = range.createContextualFragment(html_string);  
  element.appendChild(fragment);  
 } else {  
  return false;  
 }  
 return true;  
}  

Das habe ich glaube ich mal aus http://www.faqts.com/knowledge_base/view.phtml/aid/5756 gebastelt.

Möglichkeit 2: Man parst den Code mit einem DOMParser-Objekt:

var parser = new DOMParser();
var node = parser.parseFromString(string, "text/xml");
table.appendChild(node);

So vom Schema her, ich habe das nicht ausprobiert.

Wohlgeformtheit ist natürlich nötig, vielleicht eine XHTML-Namensraum-Angabe, vielleicht vorher node = document.importNode(node, true);. :)

Mathias