Claro, dê uma olhada no w3c . O modelo de dados é fácil de entender - mesmo para mim!
xtofl 25/09/08
15
Ótimo comentário de forums.asp.net/t/443912.aspx/1#443940 : O mesmo que entre frutas e maçãs. Todo XmlElement é XmlNode, mas nem todo XmlNode é XmlElement. XmlElement é apenas um tipo de XmlNode. Outros são XmlAttribute, XmlText etc.
atconway
2
Um elemento faz parte da definição formal de um documento XML bem formado, enquanto um nó é definido como parte do Modelo de Objeto do Documento para processar documentos XML.
Jool
Respostas:
259
O objeto Node é o tipo de dados principal para todo o DOM.
Um nó pode ser um nó de elemento, um nó de atributo, um nó de texto ou qualquer outro tipo de nó explicado no capítulo "Tipos de nós".
Um elemento XML é tudo, desde (incluindo) a marca inicial do elemento até (incluindo) a marca final do elemento.
Agora que entendi a resposta ... A convenção é estúpida. As palavras devem ser o contrário. No idioma inglês natural, um 'elemento' é algo que é o bloco de construção mais básico, do qual tudo é construído. ou seja, um elemento em Inglês natural é mais geral ...
Sam Svenbjorgchristiensensen
11
@ Juan Mendes: Isso é o que eles estão de acordo com o DOM, mas o argumento de Sam é que o DOM considera os nós mais básicos (primitivos) que os elementos, quando "elemento" realmente se refere ao bloco de construção mais básico em inglês.
BoltClock
16
@SamSvenbjorgchristiensensen isso não é muito preciso. Os elementos podem ser divididos ainda mais em 'partes constituintes', como prótons, nêutrons e elétrons, que por sua vez podem ser divididos em quarks, neutrinos etc. É melhor entender o que um 'nó' significa na teoria dos grafos , e então você Entenda por que os designers de XML escolheram esse nome (o DOM é apenas um gráfico hierárquico).
Les Hazlewood
20
@LesHazlewood Na verdade, a palavra "elemento" foi usado para descrever elementos físicos (hidrogênio, hélio, etc), porque eles fizeram acho que essas coisas eram indivisíveis. Só muito depois descobriram que estavam errados - tarde demais para mudar o nome; ) Eu concordo com Sam, a maneira como eles nomearam e diferenciaram elementos dom vs nós é confusa e mal pensada (como é a maior parte da especificação html).
BT
3
@BT, seu argumento seria válido se o comitê de especificação XML vivesse na Grécia antiga :) Eles não entenderam e, como tal, a definição moderna (dicionário) de elemento que (claramente) representa partes constituintes faz sentido. Adicione isso ao conhecimento da teoria dos grafos sobre os nós, e realmente não há muito espaço para interpretação.
precisa
68
Diferentes especificações do W3C definem conjuntos diferentes de tipos de "Nó".
Este pequeno exemplo me dá mais entendimento do que a resposta selecionada.
KMC
27
Um nó pode ser um número de diferentes tipos de coisas: algum texto, um comentário, um elemento, uma entidade etc. Um elemento é um tipo específico de nó.
Conforme descrito nas várias especificações XML , um elementé aquele que consiste em uma tag inicial e final e o conteúdo intermediário, ou alternativamente, em um elemento vazio (que não possui conteúdo ou final). Em outras palavras, estes são todos os elementos:
Embora você ouça "nó" usado com aproximadamente o mesmo significado, ele não possui uma definição precisa por especificações XML. Geralmente é usado para se referir a nós, como DOMs, que podem estar intimamente relacionados ao XML ou usar XML para sua representação.
Um documento xml é feito de elementos aninhados. Um elemento começa na tag de abertura e termina na tag de fechamento . Você provavelmente está visto <body>e </body>em html. Tudo entre as tags de abertura e fechamento é o conteúdo do elemento . Se um elemento for definido por uma tag de fechamento automático (por exemplo <br/>), seu conteúdo estará vazio.
As tags de abertura também podem especificar atributos , por exemplo. <p class="rant">. Neste exemplo, o nome do atributo é 'class' e seu valor 'rant'.
Algumas pessoas usam a palavra 'nó' informalmente para significar elemento, o que é confuso porque alguns analisadores também atribuem à palavra um significado técnico (identificando 'nós de texto' e 'nós de elemento'). O significado exato depende do analisador; portanto, a palavra está mal definida, a menos que você indique qual analisador está usando. Se você quer dizer elemento, diga 'elemento' .
A palavra ocorre: "(ou seja, cada nó da folha na árvore de sintaxe para a expressão regular)". Está em um apêndice não normativo, mas, no entanto, ocorre. Lá, o termo é usado como nó na árvore de análise.
SkyKing
Mesmo se considerarmos que a definição XML não menciona nós, o DOM (Document Object Model) definido para interpretação programática e manipulação de XML (pela mesma organização de padrões) de fato define e usa o termo "nó". Essa resposta não ajuda a diferenciar os termos e não ajuda a ignorar os vários usos, afirmando que eles significam a mesma coisa.
C Perkins
9
Um nó é a classe base para elementos e atributos (e basicamente para todas as outras representações XML também).
Não presumo que você tenha alguma fonte para esta reivindicação? Por exemplo, o padrão XML define o termo "elemento" como uma tag de elemento vazia ou tudo, incluindo a tag inicial e incluindo a tag final. Uma tag de início e uma tag de elemento vazio não precisam ter nenhum elemento. Ambos os seus exemplos são elementos. O termo "nó" é definido em outro lugar, no DOM, que é sobre um modelo de objeto e não no próprio texto.
SkyKing
-7
nó e elemento são os mesmos. Todo elemento é um nó, mas não é que todo nó deva ser um elemento.
Como "não é que todo nó precise ser um elemento", a declaração "nó e elemento é o mesmo" está errada.
glglgl
11
Além de sua descrição estar errada, também não é muito útil. A única coisa que você tem razão é que há alguma diferença entre os termos, mas a questão era qual a diferença.
Respostas:
O objeto Node é o tipo de dados principal para todo o DOM.
Um nó pode ser um nó de elemento, um nó de atributo, um nó de texto ou qualquer outro tipo de nó explicado no capítulo "Tipos de nós".
Um elemento XML é tudo, desde (incluindo) a marca inicial do elemento até (incluindo) a marca final do elemento.
fonte
Diferentes especificações do W3C definem conjuntos diferentes de tipos de "Nó".
Portanto, a especificação DOM define os seguintes tipos de nós:
Document
-Element
(máximo de um),ProcessingInstruction
,Comment
,DocumentType
DocumentFragment
-Element
,ProcessingInstruction
,Comment
,Text
,CDATASection
,EntityReference
DocumentType
- sem filhosEntityReference
-Element
,ProcessingInstruction
,Comment
,Text
,CDATASection
,EntityReference
Element
-Element
,Text
,Comment
,ProcessingInstruction
,CDATASection
,EntityReference
Attr
-Text
,EntityReference
ProcessingInstruction
- sem filhosComment
- sem filhosText
- sem filhosCDATASection
- sem filhosEntity
-Element
,ProcessingInstruction
,Comment
,Text
,CDATASection
,EntityReference
Notation
- sem filhosO XML Infoset (usado pelo XPath) possui um conjunto menor de nós:
XPath possui os seguintes tipos de nós:
A resposta para sua pergunta " Qual é a diferença entre um elemento e um nó " é:
An element is a type of node. Many other types of nodes exist and serve different purposes.
fonte
Um Nó faz parte da árvore DOM, um Elemento é um tipo específico de Nó
por exemplo
<foo> This is Text </foo>
Você tem um elemento foo (que também é um nó, como o elemento herda do nó) e um nó de texto 'This is Text', que é filho do elemento / nó foo
fonte
Um nó pode ser um número de diferentes tipos de coisas: algum texto, um comentário, um elemento, uma entidade etc. Um elemento é um tipo específico de nó.
fonte
Conforme descrito nas várias especificações XML , um
element
é aquele que consiste em uma tag inicial e final e o conteúdo intermediário, ou alternativamente, em um elemento vazio (que não possui conteúdo ou final). Em outras palavras, estes são todos os elementos:Embora você ouça "nó" usado com aproximadamente o mesmo significado, ele não possui uma definição precisa por especificações XML. Geralmente é usado para se referir a nós, como DOMs, que podem estar intimamente relacionados ao XML ou usar XML para sua representação.
fonte
Um documento xml é feito de elementos aninhados. Um elemento começa na tag de abertura e termina na tag de fechamento . Você provavelmente está visto
<body>
e</body>
em html. Tudo entre as tags de abertura e fechamento é o conteúdo do elemento . Se um elemento for definido por uma tag de fechamento automático (por exemplo<br/>
), seu conteúdo estará vazio.As tags de abertura também podem especificar atributos , por exemplo.
<p class="rant">
. Neste exemplo, o nome do atributo é 'class' e seu valor 'rant'.A linguagem XML não possui um 'nó' . Leia as especificações , a palavra não ocorre.
Algumas pessoas usam a palavra 'nó' informalmente para significar elemento, o que é confuso porque alguns analisadores também atribuem à palavra um significado técnico (identificando 'nós de texto' e 'nós de elemento'). O significado exato depende do analisador; portanto, a palavra está mal definida, a menos que você indique qual analisador está usando. Se você quer dizer elemento, diga 'elemento' .
fonte
Um nó é a classe base para elementos e atributos (e basicamente para todas as outras representações XML também).
fonte
Elemento é o único tipo de nó que pode ter nós e atributos filhos.
O documento também possui nós filhos, MAS
sem atributos, sem texto, exatamente um elemento filho.
fonte
Um nó é definido como:
ou como:
Agora, existem muitos tipos diferentes de nós como um nó de elementos, um nó de atributo etc.
fonte
Agora eu sei, o elemento é um dos nós
Todos os tipos de nós aqui " http://www.w3schools.com/dom/dom_nodetype.asp "
O elemento está entre a tag inicial e o final na tag final
Portanto, o nó de texto é um nó, mas não um elemento.
fonte
Um elemento é um tipo de nó, assim como atributos, texto etc.
fonte
Elemento XML é um nó XML, mas com elementos adicionais, como atributos.
fonte
nó e elemento são os mesmos. Todo elemento é um nó, mas não é que todo nó deva ser um elemento.
fonte