Tengo un problema con caracteres html especiales cuando analizo una cadena a xml
Mi base de datos almacena un documento xml como una cadena
<?xml version="1.0" encoding="utf-8"?> <contenu> <bloc> <myText> My text -<br>- rest of the text </myText> </bloc> </contenu>Obtengo los datos en php y recibo la cadena exacta (error_log muestra el "& lt;" ). Pero cuando trato de obtener un objeto xml en javascript con este código
xmltext=the data receive from the php console.log(xmltext); -> console="<?xml version="1.0" encoding="utf-8"?><contenu><bloc><text>My text -& lt;br& gt;- rest of the text</text></bloc>" let parser = new DOMParser(); let xmlDoc = parser.parseFromString (xmltext, "text/xml"); let bloc=xmlDoc.getElementsByTagName("bloc")[0]; let tnode=bloc.getElementsByTagName("text")[0]; console.log(tnode.textContent); -> console="My text - - rest of the text" document.getElementById("editContenuTablebody").innerHTML=tnode.textContent;En mi página html quiero ver en <p id="editContenuTablebody"></p>
My text -<br>- rest of the texten vez de
My text - - rest of the textEl parseString convierte el carácter especial html. ¿Hay alguna forma de almacenar la cadena exacta en el xml sin conversión?
De hecho, el problema es más complicado: parseString convierte el lr/cf y la pestaña en un nodo de texto. El xml después de parseString
<contenu> \n\t <- show as a xml text node, The "contenu" node has 3 child text/bloc/text ! <bloc> \n\t\t <- show as a xml text node, The "bloc" node has 3 child text/bloc/text ! <myText> \n\t\t\tMy text -<br>- rest of the text\n\t\t\t <- the text start and end with \n\t\t\t </myText> \n\t\t </bloc> \n\t </contenu>Entonces, necesito eliminar todo el código \n et \t antes de insertar una cadena xml en mi base de datos. No es gran cosa, excepto cuando quiero depurar (algunas cadenas xml pueden tener cientos de nodos).
No se si es el mismo problema o no.