با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته فصل آموزش AJAX در DOM را به پایان رساندیم. این جلسه شروع فصل آموزش DOM در XML است. در اولین جلسه از فصل DOM به معرفی و بررسی DOM در XML می پردازیم.
معرفی و بررسی DOM در XML را با این پرسش اساسی آغاز می کنیم که DOM چیست؟
DOM یک استاندارد برای دسترسی و دستکاری اسناد تعریف می کند:
“مدل W3C Document Object یا (DOM) یک رابط کاربری پلت فرم و زبان بی طرف است که به برنامه ها و اسکریپت ها اجازه می دهد تا به صورت پویا به محتوا، ساختار و استایل یک سند دسترسی داشته و آن را به روز رسانی نماید.”
HTML DOM یک روش استاندارد برای دسترسی و دستکاری اسناد HTML را است.
HTML DOM یک سند HTML را به عنوان یک ساختار درختی ارائه می دهد.
XML DOM یک روش استاندارد برای دسترسی و دستکاری اسناد XML را است.
XML DOM یک سند XML را به عنوان یک ساختار درختی ارائه می دهد.
درک DOM برای کسانی که با HTML یا XML سر و کار دارند ضروری است!
تمام عناصر HTML را می توان از طریق HTML DOM مشاهده کرد.
مثال زیر ارزش یک عنصر HTML را با استفاده از “id = “demo تغییر می دهد:
1 2 3 4 5 | <h1 id="demo">This is a Heading</h1> <script> document.getElementById("demo").innerHTML = "Hello World!"; </script> |
این مثال مقدار اولین عنصر <h1> در یک سند HTML را تغییر می دهد:
1 2 3 4 5 6 7 | <h1>This is a Heading</h1> <h1>This is a Heading</h1> <script> document.getElementsByTagName("h1")[0].innerHTML = "Hello World!"; </script> |
حتی اگر سند HTML حاوی تنها یک عنصر <h1> باشد بایستی باز هم Array ایندکس را [۰] تنظیم کنید زیرا روش ()getElementsByTagName همیشه یک Array را بازگردانی می نماید.
اگر هنوز با جاوا اسکریپت مشکل دارید یا هنوز کار با آن را نمی دانید به دوره آموزش جاوا اسکریپت پی وی لرن بپیوندید!
تمام عناصر XML را می توان از طریق XML DOM مشاهده کرد.
به عبارت دیگر می توان گفت: XML DOM یک استاندارد برای چگونگی دریافت، تغییر، افزودن یا حذف عناصر XML است.
این کد ارزش متن اول عنصر <title> را در یک سند XML بازیابی می کند:
1 | txt = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue; |
فایل XML که در نمونه های زیر استفاده شده است، book.xml است.
این مثال “books.xml” در xmlDoc را می خواند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <bookstore> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="children"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="web"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> <book category="web" cover="paperback"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> |
و سپس مقدار متن از اولین عنصر <title> در books.xml را بازیابی می نماید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <!DOCTYPE html> <html> <body> <p id="demo"></p> <script> var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); function myFunction(xml) { var xmlDoc = xml.responseXML; document.getElementById("demo").innerHTML = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue; } </script> </body> </html> |
این مثال یک رشته متن را در یک XML DOM object بارگذاری می کند و اطلاعات آن را در جاوا اسکریپت استخراج می کند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <html> <body> <p id="demo"></p> <script> var text, parser, xmlDoc; text = "<bookstore><book>" + "<title>Everyday Italian</title>" + "<author>Giada De Laurentiis</author>" + "<year>2005</year>" + "</book></bookstore>"; parser = new DOMParser(); xmlDoc = parser.parseFromString(text,"text/xml"); document.getElementById("demo").innerHTML = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue; </script> </body> </html> |
DOM models XML می تواند مجموعه ای از گره های objects را ایجاد نماید.
گره ها را می توان با جاوا اسکریپت یا سایر زبان های برنامه نویسی مشاهده کرد.
در این آموزش ما از جاوا اسکریپت استفاده میکنیم.
رابط برنامه نویسی DOM توسط خواص و روش های استاندارد مجموعه تعریف شده است.
ویژگی ها یا Properties که اغلب به صورتی مانند (nodename is “book”) نامیده می شوند.
روش ها یا Methods که اغلب به عنوان مواردی که حذف می شوند مانند (delete “book”) به کار می روند.
موارد زیر برخی از ویژگی های DOM معمولی هستند:
XML روش های DOM آخرین مبحث معرفی و بررسی DOM در XML در است که به آن خواهیم پرداخت.
توجه: در لیست بالا، x یک گره است.
در این جلسه به معرفی و بررسی DOM در XML پرداختیم.
در جلسه بعد با آموزش گره ها در DOM خواهیم پرداخت.
با پی وی لرن همراه باشید.