Je travaille dans Java avec XML et je me pose des questions; Quelle est la différence entre un élément et un nœud?
L'objet Node est le type de données primaire pour l'ensemble du DOM.
Un nœud peut être un nœud d'élément, un nœud d'attribut, un nœud de texte ou tout autre type de nœud expliqué dans le chapitre "Types de nœuds".
Un élément XML comprend tout ce qui va de la balise de début de l'élément à la balise de fin de l'élément.
Différentes spécifications du W3C définissent différents ensembles de types "Node".
Ainsi, la spéc. DOM définit les types de nœuds suivants:
Document
- Element
(un au maximum), ProcessingInstruction
, Comment
, DocumentType
DocumentFragment
- Element
, ProcessingInstruction
, Comment
, Text
, CDATASection
, EntityReference
DocumentType
- pas d'enfantsEntityReference
- Element
, ProcessingInstruction
, Comment
, Text
, CDATASection
, EntityReference
Element
- Element
, Text
, Comment
, ProcessingInstruction
, CDATASection
, EntityReference
Attr
- Text
, EntityReference
ProcessingInstruction
- pas d'enfantsComment
- pas d'enfantsText
- pas d'enfantsCDATASection
- pas d'enfantsEntity
- Element
, ProcessingInstruction
, Comment
, Text
, CDATASection
, EntityReference
Notation
- pas d'enfantsLe Infoset XML (utilisé par XPath) a un ensemble de nœuds plus réduit:
XPath a les types Node suivants:
La réponse à votre question " Quelle est la différence entre un élément et un nœud " est:
An element is a type of node. Many other types of nodes exist and serve different purposes.
Un Node fait partie de l'arborescence DOM, un élément est un type particulier de nœud.
par exemple. <foo> This is Text </foo>
Vous avez un élément foo (qui est également un nœud, car ce dernier hérite du nœud) et un Text Node 'This is Text', qui est un enfant du foo Element/Node.
Un nœud peut être un certain nombre de choses différentes: du texte, un commentaire, un élément, une entité, etc. Un élément est un type particulier de nœud.
Comme décrit dans les divers XML spécifications , un element
est celui qui consiste en une balise de début et une balise de fin et le contenu situé entre les deux, ou alternativement une balise d'élément vide (qui n'a pas balise content ou end). En d'autres termes, ce sont tous des éléments:
<foo> stuff </foo>
<foo bar="baz"></foo>
<foo baz="qux" />
Bien que vous entendiez "nœud" utilisé avec à peu près la même signification, il n’a pas de définition précise selon les spécifications XML. Il est généralement utilisé pour faire référence à des nœuds tels que les DOM, qui peuvent être étroitement liés à XML ou utiliser XML pour leur représentation.
Un document XML est composé d'éléments imbriqués. Un élément commence à sa balise d'ouverture et se termine à sa balise de fermeture . Vous avez probablement vu <body>
et </body>
en HTML. Tout ce qui se situe entre les balises d'ouverture et de fermeture correspond au contenu de l'élément . Si un élément est défini par une balise à fermeture automatique (par exemple, <br/>
), son contenu est vide.
Les balises d'ouverture peuvent également spécifier des attributs , par exemple. <p class="rant">
. Dans cet exemple, l'attribut name est 'class' et sa valeur 'rant'.
Le langage XML n'a pas de "nœud" . Lire la spécification , le mot ne se produit pas.
Certaines personnes utilisent le mot "nœud" de manière informelle pour désigner un élément, ce qui est source de confusion, car certains analyseurs donnent également à Word un sens technique (identifiant les "nœuds de texte" et les "nœuds d'élément"). La signification exacte dépend de l'analyseur. Le mot n'est donc pas défini, à moins d'indiquer quel analyseur vous utilisez. Si vous voulez dire élément, dites 'élément' .
Un nœud est la classe de base des éléments et des attributs (ainsi que de toutes les autres représentations XML).
Element est le seul type de noeud pouvant avoir des noeuds et des attributs enfants.
Le document a également des nœuds enfants, MAIS
pas d'attributs, pas de texte, exactement un élément enfant.
Un nœud est défini comme:
la plus petite unité d'une structure complète valide dans un document.
ou comme:
Un objet dans l'arborescence qui sert de conteneur pour contenir les objets associés.
Il existe maintenant de nombreux types de nœuds en tant que nœud d'éléments, nœud d'attribut, etc.
Maintenant, je sais, l'élément est l'un des nœud
Tous les types de nœud ici " http://www.w3schools.com/dom/dom_nodetype.asp "
L'élément se situe entre la balise de début et la fin de la balise de fin
Donc, le nœud de texte est un nœud, mais pas un élément.
Un élément est un type de nœud au même titre que les attributs, le texte, etc.