Eu vi a linha abaixo no código para um analisador DOM neste tutorial .
doc.getDocumentElement().normalize();
Por que fazemos essa normalização?
Eu li os documentos, mas não consegui entender uma palavra.
Coloca todos os nós de texto em toda a profundidade da subárvore abaixo deste nó
Ok, alguém pode me mostrar (de preferência com uma foto) como é essa árvore?
Alguém pode me explicar por que a normalização é necessária?
O que acontece se não normalizarmos?
java
xml
dom
computer-science
Moedor de maçã
fonte
fonte
Respostas:
O restante da frase é:
Isso basicamente significa que o seguinte elemento XML
pode ser representado assim em um nó desnormalizado:
Quando normalizado, o nó terá esta aparência
E o mesmo vale para atributos:
<foo bar="Hello world"/>
comentários, etc.fonte
De maneira simples, Normalização é Redução de Redundâncias.
Exemplos de redundâncias:
a) espaços em branco fora das tags de raiz / documento ( ... <document> </document> ... )
b) espaços em branco nas tags de início (< ... >) e final (</ ... >)
c) espaços em branco entre os atributos e seus valores (ou seja, espaços entre o nome da chave e = " )
d) declarações de espaço para nome supérfluos
e) quebras de linha / espaços em branco nos textos de atributos e tags
f) comentários etc ...
fonte
Como uma extensão da resposta do @ JBNizet para usuários mais técnicos, eis como é a implementação da
org.w3c.dom.Node
interfacecom.sun.org.apache.xerces.internal.dom.ParentNode
, fornece a idéia de como ela realmente funciona.Atravessa todos os nós recursivamente e chama
kid.normalize()
Esse mecanismo é substituído em
org.apache.xerces.dom.ElementImpl
Espero que isso economize algum tempo.
fonte