Sunteți pe pagina 1din 2

Parsarea XML

SimpleXML clasa care permite citirea si modif.elementelor XML.


Etape:
1. Creare docum.XML:

$xmltxt = <<<XML
<Books>
<book category="Computer">
<title>XML Developer's Guide</title>
<author>Gambardella, Matthew</author>
<year>2000 </year>
</book>
<book category="children">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
</book>
<book category="Horror">
<title>Creepy Crawlies</title>
<author>Knorr</author>
<year>2003</year>
</book>
</Books>
XML;

2. Creare obiect(cu constructor string/fis.XML):
$xml = new SimpleXMLElement($xmltxt);

3. Operatiuni:
Accesarea unui item din docum:
echo $xml ->book[0]->author;

Afisare subelemente(children) si atribute
foreach($xml as $book) {
echo $book->title.' '.$book->author.' '.$book->year.'<br>';
echo $book['category'].'<br>';
}
Afisare subelemente cu functia children()
foreach($xml->book[0]->children() as $child) {
echo $child.'<br>';
}
Functia afiseaza children aferent book[0], categoria Computer

Adaugare subelement(child)
$xml->book[0]->addChild('bookie','2222');
foreach($xml as $book) {
echo $book[0]->bookie;
}
Functia adauga un child la book[0]; suporta 3 param: nume(obligatoriu), valoare,spatiul de nume


Adaugare atribut
$xml->book[0]->addAttribute("Category","Games"); suporta tot 3 parametri

!!!! Toate operatiunile(vizualizare, modificare) se fac mai intai prin pozitionarea pe elementul parent
din fisier

Returnare string ca rezultat
echo $xml->asXML(); afiseaza structura fisierului xml.
Functia accepta ca parametru si un numea fisier - $xml = asXML(fisier.xml) - inregistrand stringul din
obiect intr-un fisier XML, rezultatul returnat fiind de tip boolean(1 sau 0)

Alte metode de incarcare fisier

Fisier local:
$xml = new SimpleXMLElement(bookstore.xml, NULL, false);
NULL , false param.optionali
NULL = ns(namespace), spatiul de nume al docum.
false(is_prefix) = false pt ns nedefinit, true pt ns definit
Fisier prel.de pe un URL:
$xml = new SimpleXMLElement(http://bookstore.xml, NULL, true);
In acest caz is_prefix = true specif.faptul ca docum.va fi prel.de pe un URL
Prin func.simplexml_load_file(); pt stringuri se utiliz. simplexml_load_string:
$xml = simplexml_load_file (bookstore.xml);

Parsarea unui feed RSS
Se face la fel ca in cazul unui docum. vizualizand mai intai codul sursa si identificand elementele; se
include linkul(sau fisierul ) in functie:
$xml =
simplexml_load_file('http://api.flickr.com/services/feeds/photoset.gne?set=72157627229375826&ns
id=73845487@N00&lang=en-us');

S-ar putea să vă placă și