espaciamiento estoy usando javascript y quiero recorrer el árbol HTML, recibiendo todo el texto tal como aparece para el usuario. Sin embargo, estoy perdiendo información de espaciado.Javascript DOM, llegar texto del nodo sin perder información
Digamos que tengo dos documentos:
<html>XXX<p>YY YY</p><html>
<html>XXX<p>YY YY</p><html>
El primero aparecerá con 1 espacio entre el Ys. El segundo tendrá 3 espacios. Sin embargo, si recorrer el árbol y, para cada nodo #text, utilice:
text = node.nodeValue;
entonces el texto para ambos nodos tendrán 3 espacios. Ya no sé cuál tiene los espacios nbsp "reales". Puedo usar node.innerHTML para los elementos p, que mostrarán el nbsp, pero no creo que pueda usar innerHTML para obtener solo el texto XXX (sin algún tipo de resta de texto).
tan sólo pudiera conseguir innerHTML de todo el documento y procesarla. Sin embargo, también necesito conseguir el estilo computado de cada elemento, lo que voy a conseguir usando
window.getComputedStyle(theElement).getPropertyValue("text-align");
Por lo tanto, voy a atravesar cada nodo. Además, innerHTML muestra la fuente tal como está, mientras que atraviesa los nodos "corrige" errores html, agrega etiquetas finales, etc. Eso es algo bueno y algo que me gustaría conservar.
Pregunta interesante. ¿Puedes mostrar tu código de cruce actual como referencia? –
Creé una función que llamo recursivamente. La función obtiene el nodeName del elemento y, si es un elemento #text, obtiene el nodeValue. Para cada elemento secundario (element.childNodes) llama a la función y devuelve el nombre y la información del valor. – user984003