Table des matières:
Vidéo: Build Tomorrow's Library by Jeffrey Licht 2024
La dichotomie entre pensée linéaire et pensée holistique sépare (respectivement) SAX de DOM.
SAX (Simple API pour XML) traite un document XML de manière linéaire, en travaillant un document pièce par pièce, du début à la fin. Mais avec DOM (le Document Object Model), vous sautez dedans et regardez le document entier. Un peu plus tard, vous zoomez sur l'élément racine, puis vous vous concentrez plus étroitement sur un élément de l'élément racine. Dans certaines situations, sauter est exactement ce que vous devez faire.
DOM nodes
Avec DOM, vous considérez un document XML comme ayant plusieurs nœuds . Des exemples de nœuds incluent des éléments, des attributs, des commentaires et les caractères entre une paire de balises de début et de fin. Un document XML entier est lui-même un nœud. Dans l'ensemble, un document XML peut avoir 12 types de nœuds différents.
Les nœuds d'un arbre
Pris ensemble, tous les nœuds DOM d'un document XML forment un arbre. Prenez, par exemple, le document de la liste 1. L'arborescence DOM de ce document ressemble à l'arbre montré dans la figure 1.
Listing 1: The Anchovy Lovers Club
Fondateur, président, secrétaire, directeur de la publicité
L'arbre a onze noeuds. Pour les compter, commencez par compter les branches de l'arbre (commodément affichées dans la figure 1). Puis comptez le membre prénom = "Herbert" branche une deuxième fois. (Cette branche a deux noeuds DOM: l'élément nommé Member est un noeud, et l'attribut de l'élément firstname = "Herbert" est un noeud.)
Un traité sur les arbres
Il y a quelques choses que vous découvrirez en regardant l'arbre à la figure 1.
- Certains nœuds sont des enfants d'autres nœuds. Par exemple, le nœud Membre est un enfant du nœud AnchovyLoversClub. En effet, dans le Listing 1, l'élément Member est imbriqué dans l'élément AncoverLoversClub.De la même manière, le nœud Debout est un enfant du nœud Membre. Cette analogie familiale continue encore et encore. Le noeud Member est le parent du noeud Debout, et AncoverLoversClub est le parent du noeud Member.
- Le document entier est un nœud. C'est un point important, facile à oublier. Dans la liste 1, l'élément racine du document est AnchovyLoversClub. Mais dans la figure 1, le nom AnchovyLoversClub n'est pas en haut de l'arbre. Au lieu de cela, le mot #document est en haut de l'arbre.Le nœud le plus haut d'un arbre DOM représente un document XML entier. Des erreurs se produisent lorsque les programmeurs pensent que l'élément racine du document démarre l'arborescence.(Ce n'est pas le cas.)
- Les commentaires et les parties de texte sont des noeuds. Dans la figure 1, le commentaire est un nœud enfant du nœud de document. C'est parce que, dans le Listing 1, le commentaire fait partie du document. Le commentaire n'est pas imbriqué dans l'un des éléments du document.Encore une fois, nous jouons à la généalogie. Nous disons que le noeud #document a deux enfants - un noeud de commentaire et un noeud AnchovyLoversClub. Ces deux nœuds - le commentaire et l'AnchovyLoversClub - sont appelés frères et soeurs .Toujours dans la figure 1, le texte Fondateur, Président, Secrétaire, Responsable de la publicité fait partie d'un nœud. Dans le listing 1, le texte Founder, President, Secretary, Publicity Manager se trouve dans l'élément Standing. Ainsi, dans la figure 1, ce noeud de texte est un enfant du noeud permanent.
- Même le texte ignorable fait partie d'un nœud. Selon la figure 1, le nœud AnchovyLoversClub a trois nœuds enfants directs - deux nœuds étiquetés #text et un autre nœud nommé Member. C'est parce que, en ce qui concerne DOM, le nœud AnchovyLoversClub a trois choses à l'intérieur.
retour chariot et trois espaces
élément membre
retour chariot
-
La situation est illustrée dans la figure 2.
-
Les trois les enfants du nœud Membre - deux morceaux d'espace et un élément permanent - sont tous frères et soeurs.Maintenant, notez les points et le [cr] dans les figures 1 et 2. Dans le diagramme en arbre, un point représente un espace vide, et [cr] représente un retour chariot. Avec DOM, tous les espaces ignorables entre la balise de début AnchovyLoversClub et la balise de début Member forment un nœud. En commençant par l'angle qui termine la balise de début AnchovyLoversClub, vous passez à la ligne suivante, puis vous avez trois espaces vides avant l'angle qui ouvre la balise de début membre. Tout ça est un noeud DOM.
- Les balises de fin ne sont pas des nœuds. Avec SAX, vous pensez peut-être au démarrage de l'élément Member et à la fin de l'élément Member. Dans DOM, vous ne pensez pas de cette façon. Au lieu de cela, vous visitez l'élément Membre une seule fois. Au cours de cette visite, vous visitez l'élément permanent et du texte. DOM n'a aucune méthode correspondant à la méthode SAX endElement.