آموزش XML > XML و جاوا اسکریپت > مفهوم و نحوه
کار با XML DOM
مفهوم و نحوه کار با XML DOM :
مدل XML DOM ، یک روش استاندارد برای دسترسی به اجزای یک فایل XML و خواندن یا تغییر
آنها را معرفی می کند .
مدل XML DOM ، فایل XML را همانند یک درخت از بالا به پایین می بیند . در این مدل اجزای
مادر parent مثل شاخه های درخت بوده و فرزندان آن برگ های درخت محسوب می شوند .
تمامی اجزای درونی فایل XML از طریق مدل XML DOM ، قایل دسترسی خواهد بود . محتویات
آنها ( متن و خواص ) را می توانید خوانده ، تغییر داده و یا حتی پاک نمایید . حتی امکان
ساخت اجزای جدید نیز وجود دارد .
هر المنت ، محتویات و خواص آن به عنوان یک گره یا node در صفحه شناخته شده و قابل دسترسی
است .
در مثال عملی زیر ، نحوه خواندن یک فایل XML و دسترسی به محتویات آن را نمایش داده
ایم :
مثال عملی :
مثال : در این مثال ، محتویات یک فایل XML به نام note.xml را خوانده
و اجزای درونی آن را در یک شی به نام xmlDoc ریخته ایم . سپس به وسیله متد ( ) getElementsByTagName
، اجزای درونی آن را با یک تگ <div> ترکیب کرده و در خروجی نمایش داده ایم .
کد را مرور نمایید .
راهنمایی : در پایان مثال نحوه استفاده از متد ( ) getElementsByTagName
را آموزش داده ایم .
محتویات فایل note.xml :
|
XML محتویات فایل
|
<?xml version="1.0" encoding="utf-8" ?>
<note>
<to> Hamed </to>
<from>Ali</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
|
کد و خروجی مثال :
|
کد
|
<html>
<body>
<h1> Developer1 Internal Note</h1>
<div>
<b>To:</b>
<span id="to"></span><br />
<b>From:</b>
<span id="from"></span><br />
<b>Message:</b>
<span id="message"></span>
</div>
<script>
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest(); //
ساخت یک شی جدید ایجکس برای ارتباط با سرور
}
xmlhttp.open("GET",
"note.xml", false); //
و خواندن آن XML باز کردن فایل
xmlhttp.send(
);
// ارسال اطلاعات به سرور
xmlDoc = xmlhttp.responseXML;
// xmlDoc در شی XML تجزیه و ریختن محتویات فایل
document.getElementById("to").innerHTML
= xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML
= xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML
= xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>
</body>
</html>
|
|
|
Developer1 Internal Note
To:
From:
Message:
|
نحوه کار با متد ( ) getElementsByTagName در XML DOM :
نکته : برای استخراج متن " Hamed " از المنت <to> ، ساختار
دستوری آن به صورت زیر است :
دقت داشته باشید که اگر حتی هر عنصر XML مثل <to> حتی دارای یک فرزند هم باشد
، شما بایستی اندیس آرایه که در اینجا 0 است را تعیین نمایید . زیرا متد ( ) getElementsByTagName
، با آرایه ها کار می کند .
|
Syntax
|
getElementsByTagName("to")[0].childNodes[0].nodeValue ;
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان بگذارید :