Normalización en el análisis DOM con Java: ¿cómo funciona?

Resuelto Apple Grinder asked hace 11 años • 3 respuestas

Vi la siguiente línea en el código de un analizador DOM en este tutorial .

doc.getDocumentElement().normalize();

¿Por qué hacemos esta normalización?
Leí los documentos pero no pude entender una palabra.

Coloca todos los nodos de texto en toda la profundidad del subárbol debajo de este nodo.

Bien, ¿alguien puede mostrarme (preferiblemente con una imagen) cómo es este árbol?

¿Alguien puede explicarme por qué es necesaria la normalización?
¿Qué pasa si no nos normalizamos?

Apple Grinder avatar Dec 09 '12 17:12 Apple Grinder
Aceptado

El resto de la frase es:

donde sólo la estructura (por ejemplo, elementos, comentarios, instrucciones de procesamiento, secciones CDATA y referencias de entidades) separa los nodos de Texto, es decir, no hay nodos de Texto adyacentes ni nodos de Texto vacíos.

Esto básicamente significa que el siguiente elemento XML

<foo>hello 
wor
ld</foo>

podría representarse así en un nodo desnormalizado:

Element foo
    Text node: ""
    Text node: "Hello "
    Text node: "wor"
    Text node: "ld"

Cuando esté normalizado, el nodo se verá así

Element foo
    Text node: "Hello world"

Y lo mismo ocurre con los atributos: <foo bar="Hello world"/>, comentarios, etc.

JB Nizet avatar Dec 09 '2012 13:12 JB Nizet

En pocas palabras, la normalización es la reducción de los despidos.
Ejemplos de redundancias:
a) espacios en blanco fuera de las etiquetas raíz/documento ( ... <document></document> ... )
b) espacios en blanco dentro de la etiqueta inicial (< ... >) y la etiqueta final (</ ... >)
c) espacios en blanco entre los atributos y sus valores (es decir, espacios entre el nombre de la clave y =" )
d) declaraciones de espacios de nombres superfluos
e) saltos de línea/espacios en blanco en los textos de atributos y etiquetas
f) comentarios, etc.

AVA avatar Jun 29 '2016 07:06 AVA