Estoy haciendo algunas pruebas, pero no veo ninguna diferencia cuando uso o no el método normalize(). Pero los ejemplos en el sitio web ExampleDepot lo usan. Entonces, ¿para qué sirve? (La documentación no estaba claro para mí tampoco)¿Qué hace el método de normalización Java Node?
Respuesta
Puede programación construir un árbol DOM que tiene una estructura extraña que no corresponden a estructuras XML reales - Especialmente cosas como múltiples nodos de texto de tipo junto a la otra, o nodos vacíos de teclee el texto. El método normalize()
los elimina, es decir, combina nodos de texto adyacentes y elimina los vacíos.
Esto puede ser útil cuando tiene otro código que espera que los árboles DOM siempre se vean como algo construido a partir de un documento XML real.
Básicamente, esto significa que el siguiente elemento XML
<foo>hello
wor
ld</foo>
podría representarse como este en un nodo sin normalizar:
Element foo
Text node: ""
Text node: "Hello "
Text node: "wor"
Text node: "ld"
Cuando se normaliza, el nodo se verá así
Element foo
Text node: "Hello world"
Limpia el código de los nodos de texto adyacentes y los nodos de texto vacíos
Normalice el elemento raíz del documento XML. Esto garantiza que todos los nodos de texto en el nodo raíz se colocan en una forma "normal", lo que significa que no hay ni nodos de texto adyacentes ni nodos de texto vacíos en el documento.
hay muchos posibles árboles DOM que corresponden a la misma estructura XML y cada estructura XML tiene al menos un árbol DOM correspondiente. Entonces la conversión de DOM a XML es surjective. Así puede suceder que:
dom_tree_1 != dom_tree_2
# but:
dom_tree_1.save_DOM_as_XML() == dom_tree_2.save_DOM_as_XML()
Y no hay manera de asegurar:
dom_tree == dom_tree.save_DOM_as_XML().load_DOM_from_XML()
Pero nos gustaría tenerlo bijective. Eso significa que cada estructura XML corresponde a un árbol DOM particular.
Para que pueda definir un subconjunto de todos los árboles DOM posibles que es bijective para el conjunto de todas las posibles estructuras XML.
# still:
dom_tree.save_DOM_as_XML() == dom_tree.normalized().save_DOM_as_XML()
# but with:
dom_tree_n = dom_tree.normalize()
# we now even have:
dom_tree_n == dom_tree_n.save_DOM_as_XML().load_DOM_from_XML().normalize()
árboles DOM Así normalizados pueden ser perfectamente reconstruidos a partir de su representación XML. No hay pérdida de información.
- 1. ¿Qué hace exactamente la normalización en CSS?
- 2. ¿Qué hace el método registerNatives()?
- 3. ¿Por qué el método concat() de Java no hace nada?
- 4. ¿Qué hace el método super()?
- 5. ¿Qué hace el método Lambda Expression Compile()?
- 6. ¿Qué hace realmente el método Dns.GetHostEntry (String)?
- 7. ¿Qué hace exactamente el método .join()?
- 8. ¿Qué hace el vacío en Java?
- 9. Android: ¿qué hace el método "setTextFilterEnabled"?
- 10. ¿Qué hace InputStream.available() en Java?
- 11. ¿Qué hace java -Dnop?
- 12. ¿Qué hace sincronizado en un método estático?
- 13. ¿Qué significa node() | @ * XSLT?
- 14. ¿Qué hace el operador | = en Java?
- 15. ¿Qué hace el operador "+ =" en Java?
- 16. ¿Qué hace esa construcción de Java?
- 17. ¿Qué hace fpstrict en Java?
- 18. ¿Qué hace "hacer" aquí? (java)
- 19. ¿Qué hace Collections.unmodifiableSet() en Java?
- 20. El método de registro Authlogic. ¿Qué hace esto?
- 21. ¿Qué hace el método 'to_sym' de Ruby on Rails?
- 22. Generador de árbol Symfony2: ¿qué hace el método canBeUnset()?
- 23. Normalización de JavaScript Unicode
- 24. Normalización de cadenas de URI posiblemente codificadas en Java
- 25. ¿Qué hace el @sign?
- 26. ¿Qué hace el método __init __() del objeto en python?
- 27. Eliminar XML Node usando el analizador de Java
- 28. ¿Qué hace el uso de e.consume() en java
- 29. Java: ¿Qué hace el operador de dos puntos (:)?
- 30. ¿Qué hace el compilador de Java con múltiples límites genéricos?