Je fais quelques tests, mais je ne vois pas de différence quand j'utilise ou non la méthode normalize(). Mais les exemples du site ExampleDepot l'utilisent. Alors, à quoi cela sert-il? (La documentation n'était pas claire pour moi non plus)Que fait la méthode de normalisation Java Node?
Répondre
Vous pouvez créer par programme un arbre DOM qui a une structure externe ne correspondant pas aux structures XML réelles - spécifiquement des choses comme plusieurs nœuds de type texte l'un à côté de l'autre, ou des nœuds vides de tapez du texte. La méthode normalize()
supprime celles-ci, c'est-à-dire qu'elle combine des nœuds de texte adjacents et supprime ceux qui sont vides.
Cela peut être utile lorsque vous avez un autre code qui s'attend à ce que les arborescences DOM ressemblent toujours à quelque chose construit à partir d'un document XML réel.
Cela signifie que l'élément XML suivant
<foo>hello
wor
ld</foo>
pourrait être représenté comme celui-ci dans un nœud dénormalisé:
Element foo
Text node: ""
Text node: "Hello "
Text node: "wor"
Text node: "ld"
Lorsque normalisée, le nœud ressemblera à ceci
Element foo
Text node: "Hello world"
Il nettoie le code des nœuds Text adjacents et vide les nœuds Text
Normalise l'élément racine du document XML. Cela garantit que tous les nœuds Text sous le nœud racine sont mis dans une forme "normale", ce qui signifie qu'il n'y a ni nœuds Text adjacents ni nœuds Text vides dans le document.
Il y a beaucoup d'arbres DOM possibles qui correspondent à la même structure XML et chaque structure XML a au moins une arborescence DOM correspondante. La conversion de DOM en XML est donc surjective. Il peut arriver que:
dom_tree_1 != dom_tree_2
# but:
dom_tree_1.save_DOM_as_XML() == dom_tree_2.save_DOM_as_XML()
Et il n'y a aucun moyen d'assurer:
dom_tree == dom_tree.save_DOM_as_XML().load_DOM_from_XML()
Mais nous aimerions avoir bijective. Cela signifie que chaque structure XML correspond à une arborescence DOM particulière.
Vous pouvez donc définir un sous-ensemble de tous les arborescences DOM possibles qui soit bijective à l'ensemble de toutes les structures XML possibles.
# 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()
peuvent être parfaitement reconstruits à partir de leur représentation XML arbres DOM donc normalisés. Il n'y a pas de perte d'information.
- 1. Que fait la méthode registerNatives()?
- 2. Que fait la méthode Container.validate()?
- 3. DOMException Cloner méthode XML Node
- 4. Que fait la méthode IUrlHistoryStg :: BindToObject?
- 5. Que fait exactement la méthode .join()?
- 6. Que fait la méthode silverlight GetSiblingItemsAndContainers?
- 7. Que fait cette construction Java?
- 8. Que fait l'opérateur | = en Java?
- 9. Que fait "faire" ici? (java)
- 10. Pourquoi la méthode concat() de Java ne fait rien?
- 11. Comment choisir entre theme ('node', $ node) et drupal_render ($ node-> content) pour la sortie $ node programmatique
- 12. Que fait la méthode 'to_sym' de Ruby on Rails?
- 13. Que fait cette méthode dans Ruby?
- 14. Java Binary Tree, comment implémenter Node?
- 15. La méthode d'enregistrement Authlogic. Qu'est-ce que cela fait
- 16. Qu'est-ce que "ClassName objectName;" fait avant la méthode principale?
- 17. Java XML Node Edit sans Node.getTextContents()
- 18. Que fait la méthode accept() d'ASTNode et comment utilise-t-elle ASTVisitor?
- 19. normalisation de la table Automatiser
- 20. Est-ce que java mail fait ce que ce composant de courrier électronique commercial fait hors de la boîte gratuitement?
- 21. normalisation Phrase
- 22. MVVM normalisation
- 23. Que fait la fonction suivante?
- 24. Que fait la macro suivante?
- 25. Que fait la fonction jQuery()?
- 26. Que fait ce javascript?
- 27. Normalisation de la base de données mysql
- 28. Java exécutable jar. Que fait ce morceau de code?
- 29. sql normalisation
- 30. Que fait exactement @synthesize?