web-dev-qa-db-fra.com

Quelle est la différence entre un élément et un nœud en XML?

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?

352
Philip Morton

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.

247
Benoit

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'enfants
  • EntityReference - Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
  • Element - Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference
  • Attr - Text, EntityReference
  • ProcessingInstruction - pas d'enfants
  • Comment - pas d'enfants
  • Text - pas d'enfants
  • CDATASection - pas d'enfants
  • Entity - Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
  • Notation - pas d'enfants

Le Infoset XML (utilisé par XPath) a un ensemble de nœuds plus réduit:

  • L'élément d'information du document
  • Eléments d'information d'élément
  • Éléments d'information d'attribut
  • Traitement des éléments d'information d'instruction
  • Éléments d'information de référence d'entité non développés
  • Éléments d'information de personnage
  • Commentaire Information Items
  • Elément d'information Déclaration de type de document
  • Eléments d'information d'entités non analysées
  • Éléments d'information de notation
  • Eléments d'information d'espace de noms
  • XPath a les types Node suivants:

    • nœuds racine
    • nœuds d'élément
    • nœuds de texte
    • nœuds d'attribut
    • nœuds d'espace de noms
    • nœuds d'instruction de traitement
    • nœuds de commentaire

    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.

    67
    Dimitre Novatchev

    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.

    28
    mmaibaum

    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.

    26
    Greg Hewgill

    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.

    15
    fenomas

    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' .

    11
    Colonel Panic

    Un nœud est la classe de base des éléments et des attributs (ainsi que de toutes les autres représentations XML).

    9
    Troels Thomsen

    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.

    7
    eugensk00

    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.

    2
    Robert Rocha

    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.

    1
    user254791

    Un élément est un type de nœud au même titre que les attributs, le texte, etc.

    0
    Simon Keep