Axel Richter: create Entity Reference

Beitrag lesen

Hallo,

ich bekomme über einen AJAX Skript eine Entity Reference als XML übergeben und würde diese gern entsprechend als HTML Entity in eine TextNode einfügen. Hat jemand eine Ahnung, wie man das umsetzen könnte? createEntityReference ist ja für JS nicht implementiert :(

Dann musst Du Dir so eine Funktion schreiben. Solange es sich nur um CharRefs handelt, also in der Form '&#' [0-9]+ ';' oder  '&#x' [0-9a-fA-F]+ ';', dann dürfte das nicht mal so schwierig sein. Man muss den CharCode-Anteil aus der Referenz ermitteln und dann per String.fromCharCode das Zeichen daraus machen lassen.

Beispiel:

  
createCharRefTextNode = function(myString) {  
  var myRegExpDez = new RegExp("&#([0-9]+);");  
  var myRegExpHex = new RegExp("&x#([0-9a-fA-F]+);");  
  var myCharRefString = "";  
  while (myString.match(myRegExpDez)) {  
   myCharRefString = String.fromCharCode(RegExp.$1);  
   myString = myString.replace(myRegExpDez, myCharRefString);  
  }  
  while (myString.match(myRegExpHex)) {  
   myCharRefString = String.fromCharCode(parseInt(RegExp.$1,16));  
   myString = myString.replace(myRegExpHex, myCharRefString);  
  }  
  return document.createTextNode(myString);  
}  

Aufruf:
createCharRefTextNode("Test & Test { Test Ô Test &x#26; Test &x#7B; Test &x#d4; Test"));

Das ist nicht sehr gut ausgetestet!

viele Grüße

Axel