نودهای DOM XML

بر اساس XML DOM، تمام محتوای مستند XML به صورت گره‌ها استگره:

  • تمام مستند یک گره مستند است
  • هر عنصر XML یک گره عنصر است
  • متن در عناصر XML گره متن است
  • هر ویژگی یک گره ویژگی است
  • نظرات جزو گره‌های نظرات هستند

مثال DOM

لطفاً فایل 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="کودکان">
  <title lang="zh">了不起的狐狸爸爸</title>
  <author>罗尔德·达尔</author>
  <translator>代维</translator>
  <press>明天出版社</press>
  <year>2009</year>
  <price>10</price>
  <ISBN>9787533259563</ISBN>
</book>
<book category="文学">
  <title lang="zh">将熟悉变为陌生</title>
  <author>齐格蒙·鲍曼</author>
  <author>彼得·哈夫纳</author>
  <translator>王立秋</translator>
  <press>南京大学出版社</press>
  <year>2023</year>
  <price>68</price>
  <ISBN>9787305269387</ISBN>
</book>
<book category="科学">
  <title lang="zh">你想飞吗,像鸟一样?</title>
  <author>理查德·道金斯</author>
  <author>亚娜·伦佐وا</author>
  <translator>高天羽</translator>
  <press>湖南科学技术出版社</press>
  <year>2023</year>
  <price>88</price>
  <ISBN>9787571019075</ISBN>
</book>
<book category="政治" cover=" 平装">
  <title lang="zh">论美国的民主</title>
  <author>托克维尔</author>
  <translator>董果良</translator>
  <press>商务印书馆</press>
  <year>1989</year>
  <price>60</price>
  <ISBN>9787100124553</ISBN>
</book>
</bookstore>

در XML بالا، نقطه اصلی <bookstore> است.

تمام نقاط دیگر در مستند در داخل <bookstore> قرار دارند.

نقطه اصلی <bookstore> دارای 5 نقطه <book> است.

نقطه <book> اولین شامل 6 نقطه فرعی است: <title>،<author>،<press>،<year>،<price> و <ISBN>.

هر نود فرزند دارای یک نود متن است:}

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

متن همیشه در نودهای متن ذخیره می‌شود

یک اشتباه رایج در پردازش DOM این است که تصور می‌کنند نودهای عناصر شامل متن هستند.

با این حال، متن عناصر در نودهای متن ذخیره می‌شود.

در این مثال:<year>2013</year>، نود عناصر <year> شامل متن با مقدار "2012" است.

"2012" نه !مقدار <year>

درخت نودهای XML DOM

XML DOM XML مستند را به عنوان یک ساختار درختی در نظر می‌گیرد. این ساختار درختی به عنواندرخت نودها.

می‌توان به همه نودهای این درخت دسترسی پیدا کرد. می‌توان محتوای آن‌ها را تغییر داد یا حذف کرد، همچنین می‌توان عناصر جدید ایجاد کرد.

این درخت نودها مجموعه‌ای از نودها و روابط بین آن‌ها را نشان می‌دهد. این درخت از نود ریشه شروع می‌شود و سپس در سطوح پایین‌تر به نودهای متن منتهی می‌شود:

درخت نود DOM

تصویر بالا XML فایل را نشان می‌دهد books.xml.

نود والد، فرزند و همکلاسی

نودهای درخت نودها با یکدیگر دارای روابط سلسله مراتبی هستند.

عبارت‌های "والد"، "فرزند" و "همکلاسی" برای توصیف این روابط استفاده می‌شوند. نود والد دارای فرزند است. فرزندان در سطح مشابه به عنوان نودهای همکلاسی یا نودهای همکلاسی (برادر یا خواهر) شناخته می‌شوند.

  • در درخت نودها، نود بالایی به عنوان ریشه شناخته می‌شود
  • به استثنای نود ریشه، هر نود فقط یک نود والد دارد
  • نودها می‌توانند تعداد نامحدودی از فرزند داشته باشند
  • نودهای برگ نودهایی هستند که دارای فرزند نیستند
  • نودهای همکلاسی نودهایی هستند که دارای نقطه والد مشترک هستند

تصویر زیر بخشی از درخت نودها را و روابط بین آن‌ها را نشان می‌دهد:

درخت نود DOM

چون داده‌های XML به صورت درخت ساخته می‌شوند، می‌توان به آن‌ها بدون اینکه ساختار دقیق درخت را بدانید و بدون اینکه نوع داده‌های موجود در آن را بدانید، دسترسی پیدا کرد.

شما در بخش‌های بعدی این آموزش بیشتر درباره جستجو در درخت نودها یاد خواهید گرفت.

توضیحات:نقطه والد: Parent Node، نقطه فرزند: Children Node، نقطه همکلاسی: Sibling Node.

نقطه اولین - نقطه آخرین

لطفاً بخش زیر از XML را بررسی کنید:

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

در XML بالا، عناصر <title> اولین گره فرزند عناصر <book> است و عناصر <ISBN> آخرین گره فرزند عناصر <book> هستند.

در XML بالا، عناصر <title> اولین گره فرزند عناصر <book> است و عناصر <ISBN> آخرین گره فرزند عناصر <book> هستند.