دسترسی به گرههای XML DOM
- صفحه قبل ویژگیها و روشهای DOM
- صفحه بعدی اطلاعات گره DOM
با استفاده از DOM، شما میتوانید به هر گره در مستند XML دسترسی پیدا کنید.
مثال
در مثال زیر از فایل XML استفاده شده است books.xml.
توابع loadXMLDoc()، در خارج از JavaScript، برای بارگذاری فایل XML استفاده میشود.
- با استفاده از شمارهی زیرمجموعه در لیست گرهها به گرهها دسترسی پیدا کنید
- در این مثال از روش getElementsByTagname() برای دریافت سومین عنصر <title> در "books.xml" استفاده شده است.
- با استفاده از ویژگی length برای جستجوی گرهها
- در این مثال از ویژگی length برای جستجوی تمام عناصر <title> در "books.xml" استفاده شده است.
- نوع گره عناصر را بررسی کنید
- در این مثال از ویژگی nodeType برای دریافت نوع گره ریشه در "books.xml" استفاده شده است.
- جستجوی گرههای عناصر
- در این مثال از ویژگی nodeType برای پردازش گرههای عناصر در "books.xml" استفاده شده است.
- با استفاده از روابط گرهها برای جستجوی گرههای عناصر
- در این مثال از ویژگی nodeType و ویژگی nextSibling برای پردازش گرههای عناصر در "books.xml" استفاده شده است.
دسترسی به گرهها
شما میتوانید از سه روش برای دسترسی به گرهها استفاده کنید:
- با استفاده از روش getElementsByTagName()
- با استفاده از جستجوی گرهها در درخت گرهها
- با استفاده از روابط بین گرهها در درخت گرهها جستجو میکنیم
روش getElementsByTagName()
زبان نشانهای getElementsByTagName() تمام عناصر دارای نام نشانهی مشخص شده را برمیگرداند.
زبان نشانهای
نود.getElementsByTagName("tagname");
مثال
مثال زیر همه عناصر <title> زیر x را بازمیگرداند:
x.getElementsByTagName("title");
لطفاً توجه کنید که مثال بالا فقط عناصر <title> زیر x را بازمیگرداند. برای بازگرداندن همه عناصر <title> در XML سند، از:
xmlDoc.getElementsByTagName("title");
در اینجا، xmlDoc خود سند است (گره سند).
لیست گره DOM
getElementsByTagName() به لیست گرهها (لیست گره) بازمیگردد. لیست گره یک آرایه از گرههاست.
با استفاده از loadXMLDoc() " را تنظیم کنیدbooks.xml" به xmlDoc
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title");
میتوانید با استفاده از شمارهگذاری به عناصر <title> در x دسترسی پیدا کنید. برای دسترسی به سومین <title>، میتوانید بنویسید:
y=x[2];
توضیح:آغاز از عدد 0 است.
در بخشهای بعدی این درس بیشتر درباره لیستهای گرهها یاد خواهید گرفت.
طول لیست گره DOM
طول ویژگی length طول لیست گرهها را تعریف میکند (یعنی تعداد گرهها).
شما میتوانید با استفاده از طول ویژگی length یک لیست گره را در یک چرخه بگردید:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }
توضیح مثال:
- استفاده از loadXMLDoc() " را تنظیم کنیدbooks.xml" به xmlDoc
- دسترسی به همه عناصر <title>
- ارزش نود متنی هر علامت <title> را نمایش میدهد
نوع گره
XML سند documentElement ویژگی ریشه است.
ویژگی گرهها nodeName ویژگی نام گره است.
ویژگی گرهها nodeType ویژگیها نوع گره هستند.
شما در بخش بعدی این درس بیشتر درباره ویژگیهای گرهها یاد خواهید گرفت.
گردش گرهها
کد زیر فرزندان ریشه را در یک چرخه میگردد، همچنین گرههای عناصری هستند:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { اگر (x[i].nodeType==1) {//تنها گرههای عناصر (نوع 1) را پردازش کنید document.write(x[i].nodeName); document.write("<br />"); } }
توضیح مثال:
- با استفاده از loadXMLDoc() " را تنظیم کنیدbooks.xml" به داخل xmlDoc بارگذاری شود
- دسترسی به فرزندان عنصر ریشه
- بررسی نوع هر گره فرزند. اگر نوع گره "1" باشد، گره عناصری است
- اگر گره عناصر باشد، نام گره را چاپ کنید
با استفاده از روابط گرهها جابجایی کنید
این کد با استفاده از روابط گرهها در درخت گرهها جابجایی میکند:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].childNodes; y=xmlDoc.getElementsByTagName("book")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) {//تنها گرههای عناصر (نوع 1) را پردازش کنید document.write(y.nodeName + "<br />"); } y=y.nextSibling; }
- با استفاده از loadXMLDoc() " را تنظیم کنیدbooks.xml" به داخل xmlDoc بارگذاری شود
- اولین فرزند اولین عنصر "book" را به دست آورید
- مقدار "y" را به اولین فرزند اولین عنصر "book" تنظیم کنید
- نوع گره هر زیرگره را بررسی کنید، اگر نوع گره "1" باشد، گره عناصر است
- اگر گره عناصر باشد، نام آن گره را چاپ کنید
- مقدار "y" را به گره همطبقه بعدی تنظیم کنید و دوباره حلقه را اجرا کنید
- صفحه قبل ویژگیها و روشهای DOM
- صفحه بعدی اطلاعات گره DOM