Vi la siguiente línea en el código para un analizador DOM en este tutorial .
doc.getDocumentElement().normalize();
¿Por qué hacemos esta normalización?
Leí los documentos pero no pude entender una palabra.
Pone todos los nodos de texto en toda la profundidad del subárbol debajo de este nodo
Bien, entonces, ¿alguien puede mostrarme (preferiblemente con una foto) cómo se ve este árbol?
¿Alguien puede explicarme por qué se necesita la normalización?
¿Qué pasa si no nos normalizamos?
java
xml
dom
computer-science
Molinillo de manzana
fuente
fuente
Respuestas:
El resto de la oración es:
Esto básicamente significa que el siguiente elemento XML
podría representarse así en un nodo desnormalizado:
Cuando se normaliza, el nodo se verá así
Y lo mismo ocurre con los atributos:
<foo bar="Hello world"/>
comentarios, etc.fuente
En simple, la normalización es la reducción de redundancias.
Ejemplos de redundancias:
a) espacios en blanco fuera de las etiquetas raíz / documento ( ... <documento> </documento> ... )
b) espacios en blanco dentro de la etiqueta de inicio (< ... >) y la etiqueta de finalización (</ ... >)
c) espacios en blanco entre los atributos y sus valores (es decir, espacios entre el nombre clave y = " )
d) declaraciones de espacio de nombres superfluas
e) saltos de línea / espacios en blanco en textos de atributos y etiquetas
f) comentarios, etc.
fuente
Como extensión de la respuesta de @ JBNizet para usuarios más técnicos , así es como se ve la implementación de la
org.w3c.dom.Node
interfazcom.sun.org.apache.xerces.internal.dom.ParentNode
, le da la idea de cómo funciona realmente.Atraviesa todos los nodos de forma recursiva y llama a
kid.normalize()
este mecanismo.
org.apache.xerces.dom.ElementImpl
Espero que esto te ahorre algo de tiempo.
fuente