Jetez un coup d'œil au w3c . Le modèle de données est facile à comprendre - même pour moi!
xtofl
15
Grand commentaire de forums.asp.net/t/443912.aspx/1#443940 : le même qu'entre le fruit et la pomme. Chaque XmlElement est XmlNode, mais tous les XmlNode ne sont pas XmlElement. XmlElement n'est qu'un type de XmlNode. D'autres sont XmlAttribute, XmlText etc.
atconway
2
Un élément fait partie de la définition formelle d'un document XML bien formé, tandis qu'un nœud est défini comme faisant partie du modèle d'objet de document pour le traitement des documents XML.
Jool
Réponses:
259
L'objet Node est le type de données principal 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œud".
Un élément XML est tout, de (y compris) la balise de début de l'élément à (y compris) la balise de fin de l'élément.
Maintenant que je comprends la réponse ... La convention est stupide. Les mots devraient être l'inverse. Dans la langue anglaise naturelle, un «élément» est quelque chose qui est le bloc de construction le plus élémentaire, à partir duquel tout le reste est construit. c'est-à-dire qu'un élément de l'anglais naturel est plus général ...
Sam Svenbjorgchristiensensen
11
@Juan Mendes: C'est ce qu'ils sont selon le DOM, mais le point de Sam est que le DOM considère les nœuds plus basiques (primitifs) que les éléments, quand "élément" se réfère en fait au bloc de construction le plus basique en anglais.
BoltClock
16
@SamSvenbjorgchristiensensen ce n'est pas tout à fait exact. Les éléments peuvent être décomposés davantage en «parties constituantes» comme les protons, les neutrons et les électrons, qui à leur tour peuvent être décomposés en quarks, neutrinos, etc. Il est préférable de comprendre ce que signifie un «nœud» dans la théorie des graphes , puis comprendre pourquoi les concepteurs XML ont choisi ce nom (le DOM n'est qu'un graphe hiérarchique).
Les Hazlewood du
20
@LesHazlewood En fait, le mot « élément » a été utilisé pour décrire les éléments physiques (hydrogène, hélium, etc.) parce qu'ils ont fait penser ces choses étaient indivisibles. Ce n'est que beaucoup plus tard qu'ils ont découvert qu'ils avaient tort - beaucoup trop tard pour changer le nom; ) Je suis d'accord avec Sam, la façon dont ils ont nommé et différencié les éléments dom vs les nœuds est déroutante et mal pensée (comme la plupart des spécifications html).
BT
3
@BT votre argument serait valable si le comité des spécifications XML vivait dans la Grèce antique :) Ils ne l'ont pas fait, et en tant que tel, la définition moderne (dictionnaire) d'élément qui représente (clairement) les parties constituantes a du sens. Ajoutez cela avec la connaissance de la théorie des graphes des nœuds, et il n'y a vraiment pas beaucoup de place pour l'interprétation.
Les Hazlewood
68
Différentes spécifications du W3C définissent différents ensembles de types de "nœuds".
Un nœud est une 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 l'élément hérite du nœud) et un nœud de texte 'This is Text', qui est un enfant de l'élément / nœud foo
Ce court exemple me donne plus de compréhension que la réponse choisie.
KMC
27
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 diverses spécifications XML , un elementest celui qui se compose d'une balise de début et d'une balise de fin, et le contenu entre les deux, ou alternativement une balise d'élément vide (qui n'a ni contenu ni balise de fin). En d'autres termes, ce sont tous des éléments:
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 d'éléments 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 êtes probablement vu <body>et </body>en html. Tout entre les balises d'ouverture et de fermeture est le contenu de l'élément . Si un élément est défini par une balise à fermeture automatique (par exemple <br/>), son contenu est vide.
L'ouverture des balises peut également spécifier des attributs , par exemple. <p class="rant">. Dans cet exemple, le nom de l'attribut est 'class' et sa valeur 'rant'.
Certaines personnes utilisent le mot «nœud» de manière informelle pour signifier élément, ce qui prête à confusion car certains analyseurs donnent également au mot une signification technique (identifiant «nœuds de texte» et «nœuds d'élément»). La signification exacte dépend de l'analyseur, donc le mot est mal défini à moins que vous n'indiquiez quel analyseur vous utilisez. Si vous voulez dire élément, dites «élément» .
Le mot apparaît: "(c'est-à-dire chaque nœud feuille dans l'arbre de syntaxe pour l'expression régulière)". C'est dans une annexe non normative, mais cela se produit néanmoins. Là, le terme est utilisé comme nœud dans l'arbre d'analyse.
skyking
Même si l'on considère que la définition XML ne mentionne pas les nœuds, le Document Object Model (DOM) défini pour l'interprétation programmatique et la manipulation de XML (par la même organisation de normalisation) définit et utilise en effet le terme "nœud". Cette réponse n'aide pas à différencier les termes et n'aide pas simplement à ignorer les divers usages en affirmant qu'ils signifient la même chose.
C Perkins
9
Un nœud est la classe de base pour les éléments et les attributs (et fondamentalement toutes les autres représentations XML également).
Je ne suppose pas que vous ayez une source pour cette réclamation? Par exemple, la norme XML définit le terme "élément" comme étant une balise d'élément vide ou tout ce qui va de la balise de début à la balise de fin et y compris. Une balise de début et une balise d'élément vide n'ont pas besoin d'avoir d'éléments. Vos deux exemples sont des éléments. Le terme "nœud" est défini ailleurs, dans DOM qui concerne un modèle objet et non dans le texte lui-même.
skyking
-7
le nœud et l'élément sont identiques. Chaque élément est un nœud, mais ce n'est pas que chaque nœud doit être un élément.
Comme "ce n'est pas que chaque nœud doit être un élément", l'affirmation "nœud et élément sont identiques" est fausse.
glglgl
1
Outre que votre description est fausse, elle n'est pas très utile non plus. La seule chose sur laquelle vous avez raison, c'est qu'il y a une certaine différence entre les termes, mais la question était de savoir quelle différence il y a.
Réponses:
L'objet Node est le type de données principal 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œud".
Un élément XML est tout, de (y compris) la balise de début de l'élément à (y compris) la balise de fin de l'élément.
la source
Différentes spécifications du W3C définissent différents ensembles de types de "nœuds".
Ainsi, la spécification DOM définit les types de nœuds suivants:
Document
-Element
(maximum d'une),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'enfantsL'ensemble d'informations XML (utilisé par XPath) possède un ensemble de nœuds plus petit:
XPath a les types de nœuds 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.
la source
Un nœud est une 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 l'élément hérite du nœud) et un nœud de texte 'This is Text', qui est un enfant de l'élément / nœud foo
la source
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.
la source
Comme décrit dans les diverses spécifications XML , un
element
est celui qui se compose d'une balise de début et d'une balise de fin, et le contenu entre les deux, ou alternativement une balise d'élément vide (qui n'a ni contenu ni balise de fin). En d'autres termes, ce sont tous des éléments: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 d'éléments tels que les DOM, qui peuvent être étroitement liés à XML ou utiliser XML pour leur représentation.
la source
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 êtes probablement vu
<body>
et</body>
en html. Tout entre les balises d'ouverture et de fermeture est le contenu de l'élément . Si un élément est défini par une balise à fermeture automatique (par exemple<br/>
), son contenu est vide.L'ouverture des balises peut également spécifier des attributs , par exemple.
<p class="rant">
. Dans cet exemple, le nom de l'attribut est 'class' et sa valeur 'rant'.Le langage XML n'a pas de «nœud» . Lisez la spécification , le mot ne se produit pas.
Certaines personnes utilisent le mot «nœud» de manière informelle pour signifier élément, ce qui prête à confusion car certains analyseurs donnent également au mot une signification technique (identifiant «nœuds de texte» et «nœuds d'élément»). La signification exacte dépend de l'analyseur, donc le mot est mal défini à moins que vous n'indiquiez quel analyseur vous utilisez. Si vous voulez dire élément, dites «élément» .
la source
Un nœud est la classe de base pour les éléments et les attributs (et fondamentalement toutes les autres représentations XML également).
la source
L'élément est le seul type de nœud pouvant avoir des nœuds et des attributs enfants.
Le document a également des nœuds enfants, MAIS
aucun attribut, aucun texte, exactement un élément enfant.
la source
Un nœud est défini comme:
ou comme:
Maintenant, il existe de nombreux types de nœuds différents en tant que nœud d'éléments, nœud d'attribut, etc.
la source
Maintenant je sais, l'élément est un nœud
Tous les types de nœuds 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
Le nœud de texte est donc un nœud, mais pas un élément.
la source
Un élément est un type de nœud, tout comme les attributs, le texte, etc.
la source
L'élément XML est un nœud XML mais avec des éléments supplémentaires comme des attributs.
la source
le nœud et l'élément sont identiques. Chaque élément est un nœud, mais ce n'est pas que chaque nœud doit être un élément.
la source