PHP XML হল PHP তে XML (Extensible Markup Language) ডেটা প্রক্রিয়া ও ম্যানিপুলেশন করার জন্য ব্যবহৃত একটি টুল বা লাইব্রেরি। XML একটি জনপ্রিয় ডেটা ফরম্যাট যা ডেটা সংরক্ষণ এবং স্থানান্তরের জন্য ব্যবহৃত হয় এবং PHP তে XML ডেটা পঠন, লেখার এবং পার্সিং (Parsing) করার জন্য কিছু শক্তিশালী ফাংশন এবং লাইব্রেরি রয়েছে।
PHP XML এর বিভিন্ন ফিচার এবং ফাংশনসমূহ:
- SimpleXML: XML ডেটা সহজে লোড, পার্স এবং ম্যানিপুলেট করার জন্য একটি সরল পদ্ধতি।
- DOMDocument: DOM (Document Object Model) ব্যবহার করে XML ডকুমেন্টে কাজ করার জন্য একটি জটিল এবং শক্তিশালী টুল।
- XMLReader: একটি স্ট্রিমিং পার্সার যা XML ফাইলগুলো পড়ার জন্য ব্যবহৃত হয় এবং এক্সএমএল ডেটা সন্নিবেশিত করে।
১. SimpleXML (XML ডেটা পার্সিং এবং ম্যানিপুলেশন)
SimpleXML PHP-এর একটি সহজ লাইব্রেরি যা XML ডেটা ফাইলগুলিকে একটি অবজেক্টে রূপান্তর করে, এবং এটি দ্রুত XML ডেটা অ্যাক্সেস এবং পরিবর্তনের সুবিধা দেয়।
SimpleXML ব্যবহার করে XML ফাইল পার্স করা:
title . "
";
echo "Author: " . $xml->author . "
";
echo "Year: " . $xml->year . "
";
?>
XML ডেটা লেখার জন্য SimpleXML ব্যবহার করা:
');
$xml->addChild('title', 'PHP Programming');
$xml->addChild('author', 'John Doe');
$xml->addChild('year', '2024');
// XML ফাইল সংরক্ষণ করা
$xml->asXML('new_example.xml');
?>
SimpleXML এর সুবিধা:
- সহজ এবং ব্যবহারযোগ্য।
- XML ডেটা সহজে অ্যাক্সেস করা এবং পরিবর্তন করা।
২. DOMDocument (DOM পার্সিং)
DOMDocument হল একটি PHP ক্লাস যা XML ডকুমেন্ট ম্যানিপুলেশন করার জন্য ব্যবহৃত হয় এবং এটি জটিল XML ডকুমেন্টগুলোর সাথে কাজ করার জন্য একটি শক্তিশালী উপায়। এটি XML ডেটা লোড এবং পরিবর্তন করার জন্য অনেক ফাংশন সরবরাহ করে।
DOMDocument ব্যবহার করে XML ডেটা পার্সিং:
load('example.xml');
// প্রথম title এলিমেন্ট বের করা
$title = $doc->getElementsByTagName('title')->item(0)->nodeValue;
echo "Title: " . $title;
?>
DOMDocument ব্যবহার করে XML ডেটা তৈরি করা:
createElement('book');
$doc->appendChild($root);
// Title এলিমেন্ট তৈরি করা
$title = $doc->createElement('title', 'PHP Programming');
$root->appendChild($title);
// Author এলিমেন্ট তৈরি করা
$author = $doc->createElement('author', 'John Doe');
$root->appendChild($author);
// XML ডেটা প্রিন্ট করা
echo $doc->saveXML();
?>
DOMDocument এর সুবিধা:
- নির্বাচিত XML উপাদানগুলির সাথে কাজ করার জন্য শক্তিশালী অপশন।
- XML ডকুমেন্টের উপর সম্পূর্ণ নিয়ন্ত্রণ।
৩. XMLReader (স্ট্রিমিং পার্সিং)
XMLReader একটি স্ট্রিমিং পার্সার যা বড় XML ফাইলগুলো লোড করতে এবং প্রসেস করতে সহায়তা করে। এটি একে একে XML ডেটা উপাদান পড়তে পারে, যার ফলে বড় XML ফাইলগুলির জন্য মেমরি ব্যবহার কম হয়।
XMLReader ব্যবহার করে XML ফাইল পড়া:
open('example.xml');
// XML ফাইলের উপাদান পড়া
while ($reader->read()) {
// যদি node element 'title' হয়
if ($reader->nodeType == (XMLReader::ELEMENT) && $reader->localName == 'title') {
echo "Title: " . $reader->readString() . "
";
}
}
// XMLReader বন্ধ করা
$reader->close();
?>
XMLReader এর সুবিধা:
- মেমরি কম ব্যবহার এবং বড় XML ফাইল পড়া সম্ভব।
- স্ট্রিমিং পার্সিং সমর্থন করে, যা দ্রুত কাজ করতে সহায়তা করে।
৪. XML ফাইল Validation (XML ফাইল যাচাই)
XML ফাইলের সঠিকতা যাচাই করতে DOMDocument ব্যবহার করা যেতে পারে। এটি XML স্কিমা বা DTD (Document Type Definition) অনুসারে ফাইলটি বৈধ কিনা তা যাচাই করতে সহায়তা করে।
XML ফাইল যাচাই করা:
load('example.xml');
// XML ফাইলের বৈধতা যাচাই করা
if ($doc->schemaValidate('schema.xsd')) {
echo "XML is valid.";
} else {
echo "XML is not valid.";
}
?>
এখানে, schemaValidate() ফাংশনটি XML ফাইলের XSD (XML Schema Definition) ফাইলের সাথে তুলনা করে এটি বৈধ কিনা তা যাচাই করে।
৫. PHP এবং XML এর মধ্যে পার্থক্য:
- SimpleXML:
- সহজ এবং দ্রুত।
- সীমিত ফিচার এবং নির্বাচিত XML ফাইল-এর জন্য উপযুক্ত।
- বড় XML ডেটা অথবা জটিল পার্সিংয়ের জন্য উপযুক্ত নয়।
- DOMDocument:
- জটিল XML ডেটার জন্য শক্তিশালী।
- ফুল ফিচারড এবং XML ম্যানিপুলেশনে উচ্চতর কাস্টমাইজেশন প্রদান করে।
- মেমরি বেশি ব্যবহার হতে পারে।
- XMLReader:
- স্ট্রিমিং পার্সিং সমর্থন করে, যা বড় XML ফাইল ব্যবস্থাপনায় উপকারী।
- কম মেমরি ব্যবহার এবং একক উপাদান পড়া।
সারসংক্ষেপ:
PHP তে XML-এর সাথে কাজ করার জন্য SimpleXML, DOMDocument, এবং XMLReader এ তিনটি প্রধান উপায় রয়েছে। আপনি যে ধরনের XML ডেটার সাথে কাজ করছেন তার উপর নির্ভর করে সঠিক টুল নির্বাচন করতে হবে। SimpleXML সহজ এবং ছোট XML ডেটার জন্য উপযুক্ত, DOMDocument জটিল ডেটার জন্য শক্তিশালী, এবং XMLReader বড় XML ফাইলের জন্য আদর্শ।
XML কি?
XML একটি মার্কআপ ল্যাংগুয়েজ যা তথ্য সংরক্ষন এবং স্থানান্তরের জন্য ব্যবহৃত হয়। আপনি XML এর মাধ্যমে আপনার নিজের ওয়েব সাইটের তথ্য অন্যদের সাথে শেয়ার করতে পারেন।
XML এর পূর্ণরূপঃ Extensible Markup Language। সুতরাং XML হচ্ছে সম্প্রসারণযোগ্য মার্কআপ ভাষা।
বিভিন্ন ওয়েব প্রযুক্তি যেমন- RSS Feed, Podcast ইত্যাদি XML ভাষায় লেখা হয়।
আপনি খুব সহজেই XML ফাইল তৈরি করতে পারেন। এটি অনেকটা HTML এর মতই। HTML এ ট্যাগ ব্যবহারের সীমাবদ্ধতা থাকলেও XML এ আপনি আপনার ইচ্ছামত ট্যাগ তৈরি করে পারেন।
XML সম্মন্ধে আরও জানতে আমাদের XML টিউটোরিয়াল ভিজিট করুন।
XML Parser কি?
একটি XML ডকুমেন্ট পড়তে এবং পরিবর্তন করতে, তৈরি করতে এবং নিপূণভাবে পরিচালনা করতে আপনার একটি XML parser এর প্রয়োজন হবে।
পিএইচপিতে দুইটি প্রধান XML Parser হলোঃ
- Tree-Based Parser
- Event-Based Parser
Tree-Based Parser
Tree-Based Parser সম্পূর্ণ ডকুমেন্টকে মেমোরির মধ্যে লোড করে এবং XML ডকুমেন্টকে একটি গাছ(Tree) আকৃতিতে রূপ দেয়। এটি সম্পূর্ণ ডকুমেন্টটি বিশ্লেষণ করে এবং গাছের প্রতিটি শাখা প্রশাখায়(DOM এ) প্রবেশাধিকার প্রদান করে।
ছোট ছোট XML ডকুমেন্টের জন্য Tree-based Parser এর কর্মক্ষমতা অনেক বেশি। কিন্তু বড় বড় XML ডকুমেন্টের ক্ষেত্রে কর্মক্ষমতাজনিত(performance) সমস্যার কারনে এটি ব্যবহার করা উচিৎ নয়।
Tree-Based Parser এর উদাহরণঃ
- SimpleXML
- DOM
Event-Based Parser
Event-based Parser সম্পূর্ণ ডকুমেন্টকে মেমোরিতে লোড করে না, বরং এটি একই সময়ে কেবল একটিমাত্র নোড(node) পাঠ করে এবং সঠিক সময়ে(in real time) এর উপর ক্রিয়া করার সম্মতি দেয়।
এক্ষেত্রে আপনি যখন পূর্ববর্তী নোড ছেড়ে পরবর্তী নোড এ যাবেন তখন এটি পূর্ববর্তী নোডটি মেমোরি থেকে ছুড়ে ফেলে দেয়।
বড় বড় XML ডকুমেন্টের জন্য এই ধরণের পার্সার উপযুক্ত। কারণ এটি খুবই দ্রুত কাজ করে এবং কম মেমোরি দখল করে।
Event-Based Parser এর উদাহরণঃ
- XMLReader
- XML Expat Parser
পিএইচপির অন্যান্য এক্সটেনশন গুলোর ন্যায় SimpleXML ও একটি পিএইচপি এক্সটেনশন(extension) যা দ্বারা আমরা খুব সহজেই XML ডেটা পেতে পারি এবং ডে
টা গুলো নিপূণভাবে পরিচালনা করতে পারি।
SimpleXML Parser
SimpleXML হচ্ছে Tree-Based টাইপের অন্তর্ভুক্ত একটি পার্সার।
আপনি যদি পূর্ব থেকেই XML ডকুমেন্টের গঠন অথবা লেআউট সম্পর্কে জেনে থাকেন তাহলে SimpleXML এর মাধ্যমে আপনি খুব সহজেই ডকুমেন্টের এলিমেন্টের নাম, এট্রিবিউট এবং টেক্সট কন্টেন্ট পেতে পারেন।
SimpleXML একটি XML ডকুমেন্টকে ডেটা স্ট্রাকচারে রূপান্তরিত করে। ফলে আপনি এটিকে array এবং object এর মত পুনারাবৃত্তি(iterate) করতে পারবেন।
XML ডকুমেন্ট এর একটি এলিমেন্টের ডেটা পড়ার জন্য DOM অথবা Expat Parser এর তুলনায় SimpleXML এ অনেক কম কোড লিখতে হয়।
ইনস্টলেশন
পিএইচপি ভার্সন-৫ থেকে SimpleXML ফাংশনসমূহ পিএইচপি কোর ফাইলের সাথে যুক্ত হওয়ায় এই ফাংশনসমূহ ব্যবহারের জন্য কোনো ইনস্টলেশনের প্রয়োজন নাই।
SimpleXML ব্যবহার করে স্ট্রিং থেকে তথ্য পড়া
স্ট্রিং থেকে এক্সএমএল ডেটা পড়ার জন্য simplexml_load_string() ফাংশনটি ব্যবহার করা হয়।
ধরুন, আমাদের একটি স্ট্রিং ভ্যারিয়েবল $xmlData রয়েছে যা XML ডেটা ধারন করে। যেমনঃ
kt_satt_skill_example_id=487
একটি স্ট্রিং থেকে তথ্য পড়ার জন্য কিভাবে simplexml_load_string() ফাংশন ব্যবহার করবেন নিম্নের উদাহরণে দেখানো হলোঃ
kt_satt_skill_example_id=488
এরর নিয়ন্ত্রণে কিছু পরামর্শঃ XML ডকুমেন্টি লোড হওয়ার সময় XML এর সমস্ত ভ্রান্তি(error) পু্নরূদ্ধার করতে libxml ফাংশনসমূহ ব্যবহার করুন। তারপরে ভ্রান্তিসমূহ পূনরাবৃত্তি(iterate) করুন। নিম্নের উদাহরণটি একটি অসম্পূর্ণ স্ট্রিং লোড করার চেষ্টা করবেঃ
kt_satt_skill_example_id=489
SimpleXML ব্যবহার করে ফাইল থেকে তথ্য পড়া
ফাইল থেকে XML ডেটা পড়ার জন্য simplexml_load_file() ফাংশনটি ব্যবহার করা হয়।
ধরুন, আমাদের "wish.xml" নামে একটি XML ফাইল রয়েছেঃ
kt_satt_skill_example_id=491
একটি ফাইল থেকে তথ্য পড়ার জন্য কিভাবে simplexml_load_file() ফাংশন ব্যবহার করবেন নিম্নের উদাহরণে দেখানো হলোঃ
kt_satt_skill_example_id=492
PHP SimpleXML একটি খুবই সহজ এবং শক্তিশালী লাইব্রেরি যা XML ডেটা প্রসেসিং করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি XML ডেটার সাথে কাজ করতে পারেন, যেমন ডেটা পড়া, লেখা এবং পরিবর্তন করা। SimpleXML ব্যবহার করে আপনি XML ডকুমেন্ট বা ডাটা কে সহজভাবে অ্যাক্সেস এবং ম্যানিপুলেট করতে পারেন।
SimpleXML - Get (পড়ুন)
SimpleXML এর simplexml_load_file() বা simplexml_load_string() ফাংশনের মাধ্যমে আপনি XML ফাইল বা XML স্ট্রিং লোড করতে পারেন। এরপর, SimpleXMLElement অবজেক্টটি তৈরি হয়ে যাবে, যার মাধ্যমে আপনি XML ডেটা অ্যাক্সেস করতে পারবেন।
PHP SimpleXML - Get এর মাধ্যমে আপনি XML ডেটার বিভিন্ন উপাদান, অ্যাট্রিবিউট এবং ট্যাগের মান বের করতে পারেন।
SimpleXML - Get (ডেটা পড়া)
1. XML ফাইল থেকে ডেটা পড়া:
এখানে একটি উদাহরণ দেওয়া হলো যেখানে XML ফাইল থেকে ডেটা পড়ে SimpleXML এর সাহায্যে প্রদর্শন করা হয়।
XML ফাইল (example.xml):
PHP for Beginners
John Doe
29.99
Aprendiendo PHP
Jane Doe
35.99
PHP কোড:
book[0]->title . "
";
echo "Author: " . $xml->book[0]->author . "
";
echo "Price: " . $xml->book[0]->price . "
";
// দ্বিতীয় বইয়ের টাইটেল এবং লেখক প্রদর্শন করা
echo "Title: " . $xml->book[1]->title . "
";
echo "Author: " . $xml->book[1]->author . "
";
echo "Price: " . $xml->book[1]->price . "
";
?>
Output:
Title: PHP for Beginners
Author: John Doe
Price: 29.99
Title: Aprendiendo PHP
Author: Jane Doe
Price: 35.99
ব্যাখ্যা:
simplexml_load_file("example.xml"): এই ফাংশনটিexample.xmlফাইলটি লোড করে এবং একটিSimpleXMLElementঅবজেক্ট তৈরি করে।$xml->book[0]->title: XML ডেটার প্রথম বইয়েরtitleট্যাগের মান অ্যাক্সেস করা হচ্ছে।$xml->book[1]->title: XML ডেটার দ্বিতীয় বইয়েরtitleট্যাগের মান অ্যাক্সেস করা হচ্ছে।
2. XML স্ট্রিং থেকে ডেটা পড়া:
আপনি যদি XML ডেটা স্ট্রিং আকারে পেতে চান, তাহলে simplexml_load_string() ফাংশন ব্যবহার করতে পারেন।
PHP for Beginners
John Doe
29.99
';
// XML স্ট্রিং লোড করা
$xml = simplexml_load_string($xml_string);
// বইয়ের টাইটেল এবং লেখক প্রদর্শন করা
echo "Title: " . $xml->book->title . "
";
echo "Author: " . $xml->book->author . "
";
echo "Price: " . $xml->book->price . "
";
?>
Output:
Title: PHP for Beginners
Author: John Doe
Price: 29.99
ব্যাখ্যা:
simplexml_load_string($xml_string): এখানে একটি XML স্ট্রিং থেকেSimpleXMLElementঅবজেক্ট তৈরি করা হচ্ছে।- এর পর, স্ট্রিং ডেটার বিভিন্ন ট্যাগ এবং ভ্যালু অ্যাক্সেস করা হচ্ছে।
3. XML অ্যাট্রিবিউট অ্যাক্সেস করা:
যখন XML এর কোনো ট্যাগে অ্যাট্রিবিউট থাকে, তখন সেই অ্যাট্রিবিউট অ্যাক্সেস করার জন্য @ সিম্বল ব্যবহার করা হয়।
XML ফাইল (example_with_attr.xml):
PHP for Beginners
John Doe
29.99
PHP কোড (অ্যাট্রিবিউট অ্যাক্সেস):
book->title . "
";
echo "Language: " . $xml->book->title['lang'] . "
";
// বইয়ের দাম এবং তার অ্যাট্রিবিউট (currency) প্রদর্শন করা
echo "Price: " . $xml->book->price . "
";
echo "Currency: " . $xml->book->price['currency'] . "
";
?>
Output:
Title: PHP for Beginners
Language: en
Price: 29.99
Currency: USD
ব্যাখ্যা:
$xml->book->title['lang']: এখানেtitleট্যাগেরlangঅ্যাট্রিবিউটকে অ্যাক্সেস করা হচ্ছে।$xml->book->price['currency']: এখানেpriceট্যাগেরcurrencyঅ্যাট্রিবিউটকে অ্যাক্সেস করা হচ্ছে।
4. Looping Through XML Data:
আপনি SimpleXML এর মাধ্যমে XML ডেটাকে লুপের মাধ্যমে অ্যাক্সেস করতে পারেন, বিশেষত যখন আপনি একাধিক উপাদান (যেমন একাধিক বই) অ্যাক্সেস করতে চান।
book as $book) {
echo "Title: " . $book->title . "
";
echo "Author: " . $book->author . "
";
echo "Price: " . $book->price . "
";
}
?>
Output:
Title: PHP for Beginners
Author: John Doe
Price: 29.99
Title: Aprendiendo PHP
Author: Jane Doe
Price: 35.99
ব্যাখ্যা:
foreach ($xml->book as $book): এখানেbookট্যাগের প্রতিটি উপাদান লুপের মাধ্যমে অ্যাক্সেস করা হচ্ছে।
সারসংক্ষেপ:
- SimpleXML হল একটি খুবই সহজ এবং শক্তিশালী লাইব্রেরি যা XML ডেটা অ্যাক্সেস এবং ম্যানিপুলেট করতে সাহায্য করে।
- simplexml_load_file() বা simplexml_load_string() ফাংশন ব্যবহার করে আপনি XML ফাইল বা স্ট্রিং লোড করতে পারেন।
- আপনি XML ট্যাগ, অ্যাট্রিবিউট, এবং ডেটাকে সহজে অ্যাক্সেস করতে পারেন এবং প্রয়োজনে লুপের মাধ্যমে একাধিক উপাদান প্রদর্শন করতে পারেন।
XML Expat Parser পিএইচপি কোর ফাইলের অংশ। এটি ব্যবহারের জন্য কোন ইনস্টলের প্রয়োজন নাই। কিছু নিজস্ব(built-in) ফাংশনের মাধ্যমে আমরা XML ডকুমেন্টকে পিএইচপিতে প্রসেস করতে পারি।
XML Expat Parser
XML এক্সপ্যাট পার্সার হলো event-based Parser।
XML ডকুমেন্ট থেকে নেওয়া নিম্নের কোডটুকু লক্ষ্য করুনঃ
kt_satt_skill_example_id=496
Event-Based Parser উপরের XML ডকুমেন্টকে তিনটি ইভেন্টের সিরিজে রুপান্তরিত করেঃ
- from এলিমেন্ট শুরু হয়।
- ভ্যালুঃ Azizur দ্বারা CDATA সেকশন শুরু হয়।
- from এলিমেন্ট শেষ হয়।
একটি সাধারন XML ফাইল
নিম্নের wish.xml ফাইলটি আমাদের উদাহরণে ব্যবহার করবোঃ
উদাহরণঃ wish.xml ফাইল
kt_satt_skill_example_id=498
XML এক্সপ্যাট পার্সার ইনিশিয়ালাইজ করা
আমরা XML এক্সপ্যাট পার্সারকে পিএইচপিতে ইনিশিয়ালাইজ(initialize ) করতে চাই। তাই আমরা এক্সএমএল এর বিভিন্ন ইভেন্ট এর জন্য কিছু নিয়ন্ত্রক(handler) ডিফান্ড করবো। তারপর XML ফাইলটি পার্স(parse) করবো।
kt_satt_skill_example_id=499
উদাহরণের ব্যাখ্যাঃ
- xml_parser_create() ফাংশনের মাধ্যমে XML পার্সার শুরু হবে।
- বিভিন্ন ইভেন্ট হ্যান্ডেলার এর সাথে ব্যবহার এর জন্য ফাংশন তৈরি করতে হবে।
- পার্সার যখন শুরু এবং শেষ ট্যাগ এর সাক্ষাৎ পায় তখন কোন ফাংশনটি সম্পাদিত হবে তা নির্ধারন করার জন্য xml_set_element_handler() ফাংশনটি সংযোজন করা হয়েছে।
- পার্সার যখন ক্যারেক্টার ডেটার সাক্ষাৎ পায় তখন কোন ফাংশনটি সম্পাদিত হবে তা নির্ধারন করার জন্য xml_set_character_data_handler() ফাংশনটি সংযোজন করা হয়েছে।
- xml_parse() ফাংশন এর মাধ্যমে "wish.xml" ফাইলটি পার্স করা হয়েছে।
- কোনো ত্রুটি থাকলে xml_error_string() ফাংশনটি XML ত্রুটি(error) গুলোকে আক্ষরিক বর্ণনায় রূপান্তর করবে।
- xml_parser_create() ফাংশন দ্বারা দখলকৃত মেমোরি খালি করতে xml_parser_free() ফাংশনটি ব্যবহার করা হয়েছে।
বিল্ট-ইন ডোম পার্সার(parser) এর মাধ্যমে পিএইচপিতে এক্সএমএল ডকুমেন্ট প্রক্রিয়া করা সম্ভব।
এক্সএমএল ডোম পার্সার
DOM Parser হলো Tree-Based Parser।
নিম্নের নমুনা এক্সএমএল ডকুমেন্টটি লক্ষ্য করুনঃ
kt_satt_skill_example_id=507
DOM একটি এক্সএমএল ডকুমেন্টকে গাছ হিসাবে দেখে। গাছের যেমন একটি মূল থাকে এবং এই মূলের অনেক শাখা প্রশাখা থাকে। ঠিক একই ভাবে এক্সএমএল ডকুমেন্টটি একটি মূল(root) এবং এলিমেন্টসমূহ হলো এর শাখা প্রশাখাঃ
- প্রথম ধাপঃ এক্সএমএল ডকুমেন্ট
- দ্বিতীয় ধাপঃ রুট/মূল এলিমেন্ট -
- তৃতীয় ধাপঃ টেক্সট এলিমেন্ট - "Azizur"
DOM ফাংশনসমূহ পিএইচপি কোর ফাইলের অংশ হওয়ায় এই ফাংশনসমূহ ব্যবহার করার জন্য কোনো ইনস্টলেশনের প্রয়োজন নাই।
একটি সাধারন এক্সএমএল ফাইল
নিম্নের wish.xml ফাইলটি আমাদের উদাহরণে ব্যবহার করবোঃ
kt_satt_skill_example_id=508
এক্সএমএল লোড এবং আউটপুট
নিম্নের উদাহরণের মাধ্যমে আমরা এক্সএমএল পার্সার আরম্ভ করে এক্সএমএল ডকুমেন্ট লোড করবো এবং এর আউটপুট নিবঃ
kt_satt_skill_example_id=510
উপরের উদাহরণে প্রথমে একটি DOMDocument-Object তৈরি হয় এবং এতে "wish.xml" ফাইল থেকে এক্সএমএল ডকুমেন্ট লোড হয়।
তারপর saveXML() ফাংশন অভ্যন্তরীণ এক্সএমএল ডকুমেন্টকে একটি স্ট্রিং-এর মধ্যে রাখে। আর তাই আমরা print স্টেটমেন্ট এর মাধ্যমে আউটপুট নিই।
আপনি যদি উপরের ফলাফলের জন্য ব্রাউজারে "View source" সিলেক্ট করেন তাহলে নিম্নের ন্যায় এইচটিএমএল কোড দেখতে পাবেনঃ
kt_satt_skill_example_id=512
সম্পূর্ণ এক্সএমএল লুপ করা
নিম্নের উদাহরণে আমরা এক্সএমএল পার্সার আরম্ভ করে এক্সএমএল ডকুমেন্ট লোড করবো এবং লুপের সাহায্যে
kt_satt_skill_example_id=514
উপরের উদাহরনে লক্ষ্য করলে দেখবেন প্রতি দুটি এলিমেন্টের মধ্যে একটি খালি টেক্সট নোড রয়েছে।
যখন এক্সএমএল তৈরি হয় তখন দুটি নোড এর মধ্যে প্রায়ই স্পেস থাকে। আর এক্সএমএল ডোম পার্সার এই খালি স্পেসসমূহকে সাধারন এলিমেন্ট হিসাবে বিবেচনা করে। আপনি যদি এই ব্যাপারে সচেতন না থাকেন তাহলে এটি মাঝে মধ্যে সমস্যার সৃষ্টি করতে পারে।
এক্সএমএল ডোম সম্পর্কে জানতে আমাদের এক্সএমএল টিউটোরিয়াল ভিজিট করুন।
Read more