انواع گره (DOM Node Types)
اینجا درباره «انواع گره DOM» حرف می زنیم. DOM یعنی مدل شیءِ سند. مرورگر، سند را مثل یک درخت می بیند. هر بخش، یک «گره (Node)» است. با شناخت گره ها، بهتر پیمایش می کنی. مثل نقشه مدرسه است.
انواع گره در DOM
منبع، گره های استاندارد W3C را فهرست کرده است. هر کدام، نقش مشخصی دارند. بعضی ها فرزند دارند و بعضی ندارند. نمونه ها:
- Document: ریشه کل سند؛ معمولاً یک Element دارد.
- Element: همان تگ ها؛ می تواند گره های مختلف داشته باشد.
- Attr: ویژگی ها؛ مقدارشان در nodeValue است.
- Text: متن داخل تگ یا ویژگی؛ فرزند ندارد.
- Comment: توضیح ها؛ فرزند ندارد.
- CDATASection: متنِ بدون پردازش پارسر.
- ProcessingInstruction: دستور برای پردازشگر.
- DocumentType: دسترسی به موجودیت های DTD.
- DocumentFragment: سند سبک برای بخش بندی.
- Entity و Notation: سازوکارهای سطح DTD.
مقادیر بازگشتی nodeName و nodeValue
برای هر گره، nodeName و nodeValue رفتار مشخصی دارند. طبق منبع:
- Document: nodeName برابر
#documentو nodeValue تهی است. - Element: nodeName نام تگ و nodeValue تهی است.
- Attr: nodeName نام ویژگی و nodeValue مقدار ویژگی است.
- Text: nodeName برابر
#textو nodeValue متن است. - Comment: nodeName برابر
#commentو nodeValue متن نظر است. - CDATASection: nodeName برابر
#cdata-sectionو nodeValue محتوا است. - ProcessingInstruction: nodeName هدف و nodeValue محتوا است.
ثابت های عددی NodeType
منبع، کُدهای ثابت برای تشخیص نوع گره را نشان می دهد:
- 1: ELEMENT_NODE
- 2: ATTRIBUTE_NODE
- 3: TEXT_NODE
- 4: CDATA_SECTION_NODE
- 5: ENTITY_REFERENCE_NODE
- 6: ENTITY_NODE
- 7: PROCESSING_INSTRUCTION_NODE
- 8: COMMENT_NODE
- 9: DOCUMENT_NODE
- 10: DOCUMENT_TYPE_NODE
- 11: DOCUMENT_FRAGMENT_NODE
- 12: NOTATION_NODE
نکته: هنگام پیمایش DOM، ابتدا نوع گره را بسنج. سپس تصمیم بگیر چه خاصیتی بخوانی.
کارِ عملی سریع
- در ابزار توسعه مرورگر، یک سند XML باز کن.
- روی گره ها حرکت کن و نوعشان را ببین.
- nodeName و nodeValue را مقایسه کن.
جمع بندی سریع
- DOM یک درخت از گره ها است.
- هر گره، نقش و فرزندهای خاصی دارد.
- nodeName نام گره را می دهد.
- nodeValue فقط برای بعضی گره ها معنا دارد.