Węzły DOM XML

Zgodnie z XML DOM, wszystkie zawartości dokumentu XML sąWęzeł

  • Cały dokument to węzeł dokumentu
  • Każdy element XML jest węzłem elementu
  • Tekst elementu XML jest węzłem tekstu
  • Każda właściwość jest węzłem właściwości
  • Komentarze są elementami komentarzy

Przykład DOM

Proszę spojrzeć na poniższy plik XML (books.xml):

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="美食">
  <title lang="zh">雅舍谈吃</title>
  <author>梁实秋</author>
  <press>江苏文艺出版社</press>
  <year>2013</year>
  <price>35</price>
  <ISBN>9787539962771</ISBN>
</book>
<book category="children">
  <title lang="zh">Wspaniały ojciec lisa</title>
  <author>Rolf Dahl</author>
  <translator> Dai Wei</translator>
  <press>Tomorrow Publishing House</press>
  <year>2009</year>
  <price>10</price>
  <ISBN>9787533259563</ISBN>
</book>
<book category="literatura">
  <title lang="zh">Zacznijmy od tego, co jest znajome</title>
  <author>Zygmunt Bauman</author>
  <author>Peter Hafner</author>
  <translator> Wang Liqiu</translator>
  <press>Nanjing University Press</press>
  <year>2023</year>
  <price>68</price>
  <ISBN>9787305269387</ISBN>
</book>
<book category="nauka">
  <title lang="zh">Czy chcesz latać, jak ptak?</title>
  <author>Richard Dawkins</author>
  <author>Anna Renzova</author>
  <translator> Gao Tianyu</translator>
  <press>Hunan Science and Technology Press</press>
  <year>2023</year>
  <price>88</price>
  <ISBN>9787571019075</ISBN>
</book>
<book category="polityka" cover="miękka oprawa">
  <title lang="zh">Demokracja w Ameryce</title>
  <author> Tocqueville</author>
  <translator> Dong Guoliang</translator>
  <press>Chińskie Wydawnictwo Handlowe</press>
  <year>1989</year>
  <price>60</price>
  <ISBN>9787100124553</ISBN>
</book>
</bookstore>

W powyższym XML-u, głównym węzłem jest <bookstore>.

Wszystkie inne węzły w dokumencie są zawarte w <bookstore>.

Główny węzeł <bookstore> posiada 5 węzłów <book>.

Pierwszy węzeł <book> zawiera 6 podwęzłów: <title>, <author>, <press>, <year>, <price> i <ISBN>.

Każdy z podwójnych węzłów zawiera węzeł tekstowy:

  • "雅舍谈吃"
  • "梁实秋"
  • "江苏文艺出版社"
  • "2012"
  • "48.00"
  • "9787100011105"

Tekst zawsze przechowywany jest w węźle tekstowym

Bardzo powszechnym błędem w przetwarzaniu DOM jest przekonanie, że element zawiera tekst.

Jednak tekst elementu przechowywany jest w węźle tekstowym.

W tym przykładzie:<year>2013</year>, węzeł elementu <year> zawiera węzeł tekstowy o wartości "2012".

"2012" Nie !Wartość elementu <year>!

Drzewem węzłów XML DOM

XML DOM traktuje dokument XML jako strukturę drzewiastą. Ta struktura nazywana jestDrzewo węzłów.

Można uzyskać dostęp do wszystkich węzłów poprzez to drzewo. Można modyfikować lub usuwać ich zawartość, a także tworzyć nowe elementy.

To drzewo węzłów pokazuje zestaw węzłów oraz ich związki. To drzewo zaczyna się od węzła korzeniowego, a następnie wyrasta do węzłów tekstowych na najniższym poziomie drzewa:

Drzewo węzłów DOM

Powyższy obrazek reprezentuje plik XML books.xml.

Rodzic, dziecko i współbrat

Węzły w drzewie węzłów mają między sobą relacje hierarchiczne.

Terminy "rodzic", "dziecko" i "współbrat" są używane do opisania tej relacji. Rodzic ma dzieci. Dzieci znajdujące się na tym samym poziomie nazywane są rówieśnikami lub współbratami (brat lub siostra).

  • W drzewie węzłów, wierzchołek nazywany jest korzeniem
  • Z wyjątkiem węzła korzeniowego, każdy węzeł ma tylko jednego rodzica
  • Węzeł może mieć dowolną liczbę dzieci
  • Liść to węzeł bez dzieci
  • Współbrat to węzeł mający tego samego rodzica

Poniższy obrazek pokazuje część drzewa węzłów oraz ich relacje:

Drzewo węzłów DOM

Ponieważ dane XML są konstruowane w formie drzewa, można je przeszukiwać, nie znając dokładnej struktury drzewa ani rodzaju danych zawartych w nim.

Dowiedz się więcej o nawigacji po drzewie węzłów w późniejszych rozdziałach tego kursu.

Komentarz:Rodzic: Parent Node, dziecko: Children Node, rówieśnik: Sibling Node.

Pierwszy podwójny węzeł - ostatni podwójny węzeł

Proszę zerknąć na poniższy fragment XML:

<bookstore>
  <book category="美食">
    <title lang="zh">雅舍谈吃</title>
    <author>梁实秋</author>
	<press>江苏文艺出版社</press>
    <year>2013</year>
    <price>35</price>
	<ISBN>9787100011105</ISBN>
  </book>
</bookstore>

W powyższym XML, element <title> jest pierwszym węzłem potomnym elementu <book>, a element <ISBN> jest ostatnim węzłem potomnym elementu <book>.

W powyższym XML, element <title> jest pierwszym węzłem potomnym elementu <book>, a element <ISBN> jest ostatnim węzłem potomnym elementu <book>.