XML DOM পার্সিং

অধিকাংশ ব্রাউজারই XML-কে পড়া এবং ব্যবহার করার জন্য XML পার্সার ধারণ করে

পার্সার XML-কে JavaScript-এর পরিবর্তিত অবজেক্টে রূপান্তরিত করে

ইনস্ট্রাকশন

CodeW3C.com-এর ইনস্ট্রাকশনগুলো ব্রাউজার এবং প্ল্যাটফর্ম নির্ভর নয়। এই ইনস্ট্রাকশনগুলো সমস্ত আধুনিক ব্রাউজারে চলার জন্য তৈরি

XML ফাইল লোড এবং পার্সার
XML স্ট্রিং লোড এবং পার্সার

XML পার্সার

সমস্ত আধুনিক ব্রাউজারই XML-কে পড়া এবং ব্যবহার করার জন্য XML পার্সার ধারণ করে

পার্সার XML-কে মেমরি তে পড়ি এবং জাভাস্ক্রিপ্ট দ্বারা পরিদর্শন করা যায় এক্সিমল ডকুমেন্ট অবজেক্টে রূপান্তরিত করে

মাইক্রোসফটের এক্সিমল পার্সার অন্যান্য ব্রাউজারের পার্সার থেকে ভিন্ন। মাইক্রোসফটের পার্সার XML ফাইল এবং XML স্ট্রিং (টেক্সট) লোড করে, অন্যান্য ব্রাউজার একটি পৃথক পার্সার ব্যবহার করে। কিন্তু, সমস্ত পার্সারই XML ট্রি ব্যবহার করতে, নোডগুলোকে পরিদর্শন, যোগ এবং অপসারণ করতে ফাংশনসমূহ ধারণ করে

এই টিউটোরিয়ালে, আমরা আপনাকে জানাবো কিভাবে IE এবং অন্যান্য ব্রাউজারে চলার জন্য স্ক্রিপ্ট তৈরি করা যায়

মাইক্রোসফটের এক্সিমল পার্সার দ্বারা এক্সিমল লোড করা

মাইক্রোসফটের এক্সিমল পার্সার ইন্টারনেট এক্সলোয়ার ৫ এবং তার উপর ভিত্তি করে স্থাপিত হয়

নিচের JavaScript স্ক্রিপ্টটি XML নথিপত্র ("books.xml) পার্সারে লোড করে:

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("books.xml");

কোডটি ব্যাখ্যা:

  • প্রথম সারি একটি খালি মাইক্রোসফট এক্সিমল ডকুমেন্ট অবজেক্ট তৈরি করে
  • দ্বিতীয় পর্যায়টি অসিনক্রোনাস লোডকে বন্ধ করে, যাতে নথিপত্র সম্পূর্ণভাবে লোড হওয়ার আগে পার্সার স্ক্রিপ্টটি চলতে থাকে না
  • তৃতীয় পর্যায়টি পার্সারকে "books.xml" নামক নথিপত্র লোড করাকালীন বোঝায়

নিচের JavaScript স্ক্রিপ্টটি "txt" নামক শব্দমালা পার্সারে লোড করে:

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);

মন্তব্য:loadXML() মথুদা লোড করতে ব্যবহৃত হয় load() ফাইল লোড করার জন্য

Firefox এবং অন্যান্য ব্রাউজারগুলিতে XML পার্সার

নিচের JavaScript স্ক্রিপ্টটি XML নথিপত্র ("books.xml) পার্সারে লোড করে:

xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async="false";
xmlDoc.load("books.xml");

কোডটি ব্যাখ্যা:

  • প্রথম পর্যায়টি একটি শুধুমাত্র একক XML নথিপত্র অবজেক্ট তৈরি করে
  • দ্বিতীয় পর্যায়টি অসিনক্রোনাস লোডকে বন্ধ করে, যাতে নথিপত্র সম্পূর্ণভাবে লোড হওয়ার আগে পার্সার স্ক্রিপ্টটি চলতে থাকে না
  • তৃতীয় পর্যায়টি পার্সারকে "books.xml" নামক নথিপত্র লোড করাকালীন বোঝায়

নিচের JavaScript স্ক্রিপ্টটি "txt" নামক শব্দমালা পার্সারে লোড করে:

parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");

কোডটি ব্যাখ্যা:

  • প্রথম পর্যায়টি একটি শুধুমাত্র একক XML নথিপত্র অবজেক্ট তৈরি করে
  • দ্বিতীয় পর্যায়টি পার্সারকে লোড করাকালীন "txt" নামক শব্দমালা বোঝায়

মন্তব্য:Internet Explorer ব্যবহার করে loadXML() মথুরা ব্রাউজারগুলি এই DOMParser একটি অবজেক্ট

পার্স করা XML নথিপত্র - একটি ব্রাউজার পারস্কোপসী ইনস্ট্যান্স

নিচের উদাহরণটি একটি XML নথিপত্র ("books.xml) লোড করে XML পার্সারকে:

<html>
<body>
<script type="text/javascript">
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
  catch(e) {alert(e.message)}
  }
try 
  {
  xmlDoc.async=false;
  xmlDoc.load("books.xml");
  document.write("xmlDoc is loaded, ready for use");
  }
catch(e) {alert(e.message)}
</script>
</body>
</html>

TIY

Error: Access Across Domains

নিরাপত্তার কারণে, আধুনিক ব্রাউজাররা ডোমেন পারস্কোপসী প্রবেশ না অনুমতি দেয়。

এই মানে, ওয়েবসাইটটি এবং তা লোড করাকালীন XML ফাইলটিকেও একই সার্ভারে থাকতে হবে。

CodeW3C.com-এর ইনস্ট্যান্সটি খোলা XML ফাইলটি CodeW3C.com-এর ডোমেনে অবস্থিত।

আগ্রহ করে আপনি উপরোক্ত উদাহরণটি নিজের ওয়েবসাইটে ব্যবহার করতে হলে, তবে একটি XML ফাইলটিকে নিজের সার্ভারে রাখতে হবে। না তবে, xmlDoc.load() টি "Access is denied" ত্রুটি উৎপন্ন করবে。

পার্স করা XML শব্দমালা - একটি ব্রাউজার পারস্কোপসী ইনস্ট্যান্স

এই কোডটি একটি XML শব্দমালা লোড এবং পার্স করেছে:

<html>
<body>
<script type="text/javascript">
text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(text);
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(text,"text/xml");
    }
  catch(e) {alert(e.message)}
  }
document.write("xmlDoc is loaded, ready for use");
</script>
</body>
</html>

TIY

মন্তব্য:Internet Explorer loadXML() মথড ব্যবহার করে XML স্ট্রিং পার্স করে, অন্যান্য ব্রাউজারগুলি ব্যবহার করে DOMParser অবজেক্ট