درخت XML

ساختار سلسله‌مراتبی XML — ریشه، شاخه‌ها و برگ‌ها و روابط والد/فرزند

سند XML یک درخت است

سند XML از دیدگاه ساختاری، یک درخت (Tree) وارونه است که از یک ریشه شروع می‌شود و به شاخه‌ها و برگ‌ها می‌رسد. این ساختار سلسله‌مراتبی (Hierarchical) به XML اجازه می‌دهد داده‌های تودرتو و پیچیده را مدل کند.

مثال: درخت یک سند XML

<?xml version="1.0" encoding="UTF-8"?>
<کتابخانه>
    <کتاب دسته="برنامه‌نویسی">
        <عنوان>آموزش XML</عنوان>
        <نویسنده>سارا محمدی</نویسنده>
        <سال>۲۰۲۴</سال>
        <قیمت>۹۵۰۰۰</قیمت>
    </کتاب>
    <کتاب دسته="رمان">
        <عنوان>سووشون</عنوان>
        <نویسنده>سیمین دانشور</نویسنده>
        <سال>۱۳۴۸</سال>
        <قیمت>۶۰۰۰۰</قیمت>
    </کتاب>
</کتابخانه>

نمودار درختی این سند به این شکل است:

کتابخانه (ریشه)
├── کتاب (فرزند کتابخانه)
│   ├── عنوان
│   ├── نویسنده
│   ├── سال
│   └── قیمت
└── کتاب
    ├── عنوان
    ├── نویسنده
    ├── سال
    └── قیمت

اصطلاحات مهم درخت XML

اصطلاحتوضیح
Root (ریشه)عنصر بالای درخت؛ هر سند XML فقط یک ریشه دارد
Parent (والد)عنصری که زیرمجموعه (فرزند) دارد
Child (فرزند)عنصری که داخل عنصر دیگری قرار گرفته
Sibling (هم‌والد)عناصری که والد یکسان دارند
Leaf (برگ)عنصری که هیچ فرزندی ندارد (مثل متن)
Text (متن)محتوای متنی داخل یک عنصر
Attribute (ویژگی)اطلاعات اضافی در تگ شروع (مثل دسته="رمان")

روابط در مثال بالا

قانون مهم: فقط یک عنصر ریشه!

سند زیر نامعتبر است چون دو ریشه دارد:

<?xml version="1.0"?>
<کتاب>...</کتاب>
<کتاب>...</کتاب>   ❌ خطا! ریشه دوم

راه‌حل درست، قرار دادن همه در یک ریشه مشترک است:

<?xml version="1.0"?>
<کتاب‌ها>
    <کتاب>...</کتاب>
    <کتاب>...</کتاب>   ✅ درست
</کتاب‌ها>

پرولوگ XML

خط اول سند، پرولوگ یا اعلان XML نام دارد:

<?xml version="1.0" encoding="UTF-8"?>
همیشه از encoding="UTF-8" استفاده کنید تا متن فارسی بدون مشکل ذخیره و منتقل شود.

همه چیز باید بسته شود

از ریشه تا آخرین برگ، همه تگ‌ها باید بسته شوند. درخت XML نمی‌تواند شاخه‌ای ناتمام داشته باشد — این یکی از سخت‌گیرانه‌ترین قوانین XML است که در درس سینتکس کامل بررسی می‌کنیم.

این مبحث بخشی از دوره آموزش کامل XML است.

ابزارهای مرتبط