PHP/PHP XML DOM
რა არის DOM?
[რედაქტირება]W3C DOM უზრუნველყოფს სტანდარტულ ობიექტებს HTML და XML დოკუმენტებისათვის და სტანდარტულ ინტერფეისს მათზე წვდომისა და მანიპულაციისათვის.
W3C DOM გამოყოფილია განსხვავებულ ნაწილებში (Core, XML და HTML) და განსხვავებულ დონეებში (DOM დონე 1/2/3):
- Core DOM - გასაზღვრავს სტანდარტულ ობიექტებს დოკუმენტის ნებისმიერი სტრუქტურისათვის
- XML DOM - გასაზღვრავს სტანდარტულ ობიექტებს XML დოკუმენტისათვის
- HTML DOM - გასაზღვრავს სტანდარტულ ობიექტებს HTML დოკუმენტისათვის
DOM გარჩევა
[რედაქტირება]DOM გამრჩეველი არის ხე-ბაზური გამრჩეველი.
შევხედოთ XML დოკუმენტის ნაწილს:
<?xml version="1.0" encoding="ISO-8859-1"?> <from>Jani</from>
XML DOM ხედავს XML-ს, როგორც ხისებრ სტრუქტურას:
- დონე 1: XML დოკუმენტი
- დონე 2: მთავარი ელემენტი: <from>
- დონე 3: ტექსტური ელემენტი: "Jani"
XML ფაილი
[რედაქტირება]ქვემოთ მოყვანილ XML ფაილს გამოვიყენებთ მაგალითში:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
XML-ის ჩატვირთვა და დაბეჭდვა
[რედაქტირება]ჩვენ გვინდა XML გამრჩეველის ინიციალიზაცია, xml-ის ჩატვირთვა და მისი დაბეჭდვა:
მაგალითი
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
კოდი დაბეჭდავს:
Tove Jani Reminder Don't forget me this weekend!
თუ მოვნიშნავთ "View source" ბრაუზერში, ჩვენ დავინახავთ შემდეგ HTML კოდს:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
ზემოთ მოყვანილი კოდი ქმნის DOM დოკუმენტ-ობიექტს და ტვირთავს XML-ს "note.xml"-დან.
შემდეგ saveXML() ფუნქცია დებს შიდა XML დოკუმენტს სტრინგში, ისე რომ ჩვენ შეგვეძლოს მისი დაბეჭდვა.
XML ციკლი
[რედაქტირება]ჩვენ გვინდა XML გამრჩეველის ინიციალიზება, XML-ის ჩატვირთვა და <note> ელემენტებს შორის ციკლი:
მაგალითი
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br />"; } ?>
კოდი დაბეჭდავს:
#text = to = Tove #text = from = Jani #text = heading = Reminder #text = body = Don't forget me this weekend! #text =