Pracuję w Javie z XML-em i zastanawiam się; jaka jest różnica między elementem a węzłem?
Pracuję w Javie z XML-em i zastanawiam się; jaka jest różnica między elementem a węzłem?
Odpowiedzi:
Obiekt Node jest podstawowym typem danych dla całego DOM.
Węzeł może być węzłem elementu, węzłem atrybutu, węzłem tekstowym lub dowolnym innym typem węzła wyjaśnionym w rozdziale „Typy węzłów”.
Element XML to wszystko, od (włącznie) znacznika początkowego elementu do (włącznie) znacznika końcowego elementu.
Różne specyfikacje W3C definiują różne zestawy typów „Węzłów”.
Zatem specyfikacja DOM definiuje następujące typy węzłów:
Document
- Element
(maksymalnie jeden) ProcessingInstruction
,
Comment
,DocumentType
DocumentFragment
- Element
, ProcessingInstruction
,
Comment
, Text
, CDATASection
,EntityReference
DocumentType
-- bez dzieci
EntityReference
- Element
, ProcessingInstruction
,
Comment
, Text
, CDATASection
,EntityReference
Element
- Element
, Text
, Comment
, ProcessingInstruction
,
CDATASection
,EntityReference
Attr
- Text
,EntityReference
ProcessingInstruction
-- bez dzieci
Comment
-- bez dzieci
Text
-- bez dzieci
CDATASection
-- bez dzieci
Entity
- Element
, ProcessingInstruction
,
Comment
, Text
, CDATASection
,EntityReference
Notation
-- bez dzieci XML Infoset (używany przez XPath) ma mniejszy zbiór węzłów:
XPath ma następujące typy węzłów:
Odpowiedź na pytanie „ Jaka jest różnica między elementem a węzłem ” to:
An element is a type of node. Many other types of nodes exist and serve different purposes.
Węzeł jest częścią drzewa DOM, Element jest szczególnym typem Węzła
na przykład
<foo> This is Text </foo>
Masz element foo (który jest również węzłem, ponieważ element dziedziczy po węźle) i węzeł tekstowy „To jest tekst”, który jest dzieckiem elementu / węzła foo
Węzłem może być wiele różnych rzeczy: jakiś tekst, komentarz, element, byt itp. Element jest szczególnym rodzajem węzła.
Jak opisano w różnych specyfikacjach XML , jest element
to taki, który składa się ze znacznika początkowego i znacznika końcowego oraz treści pomiędzy, lub na przemian pustego znacznika elementu (który nie ma treści ani znacznika końcowego). Innymi słowy, są to wszystkie elementy:
<foo> stuff </foo>
<foo bar="baz"></foo>
<foo baz="qux" />
Chociaż słyszysz, że „węzeł” ma mniej więcej takie samo znaczenie, nie ma precyzyjnej definicji dla specyfikacji XML. Zwykle odnosi się do węzłów rzeczy takich jak DOM, które mogą być ściśle powiązane z XML lub używać XML do ich reprezentacji.
Dokument XML składa się z zagnieżdżonych elementów. Element zaczyna się od znacznika otwierającego, a kończy na znaczniku zamykającym . Pewnie widział <body>
i </body>
w html. Wszystko pomiędzy otwierania i zamykania znaczników jest element za treść . Jeśli element jest zdefiniowany przez samozamykający się tag (np.<br/>
), Wówczas jego zawartość jest pusta.
Tagi otwierające mogą również określać atrybuty , np. <p class="rant">
. W tym przykładzie nazwą atrybutu jest „klasa”, a jej wartość „rant”.
Język XML nie ma czegoś takiego jak „węzeł” . Przeczytaj specyfikację , słowo nie występuje.
Niektóre osoby używają słowa „węzeł” nieformalnie w celu oznaczenia elementu, co jest mylące, ponieważ niektóre parsery nadają temu słowu również znaczenie techniczne (identyfikując „węzły tekstowe” i „węzły elementów”). Dokładne znaczenie zależy od parsera, więc słowo jest źle zdefiniowane, chyba że podasz używany parser. Jeśli masz na myśli element, powiedz „element” .
Węzeł jest klasą podstawową zarówno dla elementów, jak i atrybutów (i zasadniczo wszystkich innych reprezentacji XML).
Węzeł jest zdefiniowany jako:
najmniejsza jednostka prawidłowej, kompletnej struktury w dokumencie.
lub jako:
Obiekt w widoku drzewa, który służy jako pojemnik do przechowywania powiązanych obiektów.
Teraz istnieje wiele różnych rodzajów węzłów jako węzeł elementów, węzeł atrybutów itp.
Teraz wiem, że element jest jednym z węzłów
Wszystkie typy węzłów tutaj „ http://www.w3schools.com/dom/dom_nodetype.asp ”
Element znajduje się między znacznikiem początkowym a końcowym w znaczniku końcowym
Węzeł tekstowy jest więc węzłem, ale nie elementem.
Element jest rodzajem węzła, podobnie jak atrybuty, tekst itp.
Element XML jest węzłem XML, ale z dodatkowymi elementami, takimi jak atrybuty.
<a>Lorem Ipsum</a> //This is a node
<a id="sample">Lorem Ipsum</a> //This is an element
węzeł i element są takie same. Każdy element jest węzłem, ale nie jest tak, że każdy węzeł musi być elementem.