Zenetr a webszervernkn avagy XML hasznlata PHP 5
Zenetár a webszerverünkön, avagy XML használata PHP 5 alatt. Ercsey Balázs (laze) – netpeople. hu
Zenetár a webszerverünkön Miről lesz szó? XML Objektum orientált szemléletmód PHP 4 PHP 5
Az XML W 3 C szabvány üzleti érdekek felett áll Mozaikszó: e. Xtensible Markup Language ~kiterjeszhető leíró nyelv Különböző médiumok közti kapcsolat, Adatszerkezetek leírása
Az XML Elsőre kísértetiesen hasonlít a HTMLhez… …de van pár megkötés: Kell lennie záró párnak, vagy az elemet kell zárni A paraméter értékét idézőjelbe kell tenni: <elem>szoveg</elem> <elem parameter=”ertek”/>
Az XML Köztes nyelv Más nyelvek leírására szolgál, például: WDDX, RSS, XHTML A célnak leginkább megfelelő saját struktúra, és saját elem definíció lehetséges DTD (Document Type Defintion) Adatátvitel különböző rendszerek, például Macromedia Flash és PHP között.
Zene, zene Az adathalmaz kerete: <? php $xml. Data = <<<XML <? xml version='1. 0' standalone='yes'? > <tracks>. . . </tracks> XML; ? >
Zene, zene Az adathalmaz egyetlen eleme: <track> <title>Katjusha</title> <author>Leningrad Cowboys</author> <album type=”collection”> Thank You Very Many </album> </track> • Ebből lehet még tetszőleges számú darab
Zene, zene Észrevételek: Saját struktúra, saját, beszédes elemnevek Hasonló struktúrákra példa: i. Tunes exportálási lehetősége feladat elemezni, feldolgozni! Házi
Feldolgozás… PHP 4 alatt: Külső PHP modul (expat, sablotron) lassabb Külön erőforrás azonosító Két fő lehetőség: SAX (Simple API for XML) – Esemény alapú kezelés DOM (Document Object Model) – A dokumentum strukturális kezelése
Feldolgozás… PHP 5 alatt több lehetőség van: SAX DOM Simple. XML A továbbiakban ezzel foglalkozunk
Feldolgozás… A Simple. XML előnyei: Nem bővítményként fut, az új libxml 2 modult használja, ami a PHP 5 része sokkal gyorsabb Nem kell külön erőforrás azonosítót létrehozni Minden adat objektum orientált módon érhető el
Feldolgozás… 1. Példa, elemek listázása: Kiíratjuk a számok címeit <track>. . . <title>A szám címe</title> </track>
Feldolgozás. . . Forráskód: <? php include ’tracks. php’; $xml. Object = simplexml_load_string( $xml. Data ); foreach( $xml. Object->track as $track ) { echo( $track->title. ’ ’ ); } ? >
Feldolgozás. . . Észrevételek: Rendkívül egyszerű beolvasás Azonnal egy objektum áll a rendelkezésünkre: $xml. Object = simplexml_load_string( $xml. Data ); Amit tovább bontva is objektumként kezelhetünk: $track->title
Feldolgozás… 2. Példa, elemek paramétereinek listázása Kiíratjuk az albumok címeit és típusait <track>. . . <album type=”Az album típusa”> Az album címe </album> </track>
Feldolgozás… Megint forráskód: <? php include ’tracks. php’; $xml. Object = simplexml_load_string( $xml. Data ); foreach( $xml. Object->track as $track ) { echo( $track->album ); echo( ’ (’. $track->album[’type’]. ’) ’ ); } ? >
Feldolgozás… XPath kezelése Simple. XML által Az XPath: Külön szabvány Elemek keresésére szolgál XML alapú forrásban XML, XHTML, WDDX, . . . Az elem elérése független az elem helyétől Gyorsabb, mint az elemek egyenkénti, manuális ellenőrzése
Feldolgozás… 3. Példa, XPath kezelése Kiválasztó: //author illeszkedik minden <author> elemre a dokumentumban, bárhol legyen is. Válogassunk ki minden előadót! <author>Az előadó neve</author>
Feldolgozás… Íme, a forráskód: <? php include ’tracks. php’; $xml. Object = simplexml_load_string( $xml. Data ); foreach( $xml. Object->xpath( ’//author’ ) as $author ) { echo( $author. ’ ’ ); } ? >
Módosítás Simple. XML-ben megvan a módosítás lehetősége A beolvasáskor kapott objektumokon keresztül A végeredmény a megváltoztatott XML forrás
Módosítás 4. Példa, elem módosítása Az egyik szám címének megváltoztatása: Előtte: <track> <title>A régi cím</title> </track> Utána: <track> <title>Az új cím</title> </track>
Módosítás Az elmaradhatatlan forráskód: <? php include ’tracks. php’; $xml. Object = simplexml_load_string( $xml. Data ); $xml. Object->track->title = ’Ballad Of The Leningrad Cowboys’; echo $xml. Object->as. XML(); ? >
Végszó Tehát, mint azt láthattuk, az objektum orientált XML kezelés PHP 5 alatt: Gyorsabb Jelentősen egyszerűbb Kiváló megoldás strukturált adatkezelésre
Linkek Néhány hasznos oldal: - XML: http: //www. w 3. org/TR/REC-xml – XPath: http: //www. w 3. org/TR/xpath – libmxml 2: http: //www. xmlsoft. org – PHP 5 Manual / Simple. XML: http: //hu. php. net/manual/en/ref. simplexml. php
- Slides: 24