Ablakok.  Vírusok.  Jegyzetfüzetek.  Internet.  hivatal.  Segédprogramok.  Drivers

28,3K

Sok xml elemzőt láttam, de nem érintettem a webes programozást. Most szeretném megtudni és megtanulni veled, hogyan készítsünk egyszerű xml-elemzőt php-ben.

Minek? Szükséges!

Nem, igazából: az xml fájlok nagyon hasznosak. És minden szakembernek... nem, nem szabad, de tudnia kell, hogyan kell velük dolgozni. Profik akarunk lenni, nem? Ha a blogomon vagy, akkor van egy ilyen vágyad.

Feltételezzük, hogy tudjuk, mi az XML, és nem írjuk le itt. Nos, ha nem tudnánk, itt könnyen megtudhatjuk: http://ru.wikipedia.org/wiki/XML

Miközben az XML PHP-ben való elemzésének módjait kerestem, felfedeztem egy egyszerű PHP függvénykészletet az XML fájlokkal való munkavégzéshez, az úgynevezett "XML Parser Functions". Az elemzés az értelmező inicializálásával kezdődik az xml_parser_create függvény meghívásával:

$xml_parser = xml_parser_create();

Ezután meg kell mondanunk az elemzőnek, hogy mely függvények dolgozzák fel az xml-címkéket és a szöveges információkat, amelyekkel az elemzési folyamat során találkozik. Azok. telepítenie kell néhány kezelőt:

xml_set_element_handler($xml_parser, "startElement", "endElement");

Ez a funkció felelős az elem kezdő és végkezelők beállításáért. Például, ha egy kombináció előfordul egy xml fájl szövegében, akkor a startElement függvény akkor fog működni, amikor az elemző megtalálja az elemet, az endElement függvény pedig akkor, amikor megtalálja.

A startElement és az endElement függvények a php dokumentációja szerint több paramétert is igénybe vesznek:

De hogyan lehet adatokat olvasni egy fájlból? Ennek még egyetlen paraméterét sem láttuk egyik függvényben sem! Erről pedig később: a fájl beolvasása a programozó feladata, i.e. a fájlokkal való munkavégzéshez a szabványos függvényeket kell használnunk:

Megnyitotta a fájlt. És most soronként el kell olvasnia, és az olvasott sorokat be kell töltenie az xml_parse függvénybe:

XML-hiba: ".xml_error_string(xml_get_error_code($xml_parser)); echo " at ".xml_get_current_line_number($xml_parser); break; ) ) ?>

Itt két nagyon fontos dolgot emelünk ki. Az első az, hogy az xml_parse függvény harmadik paramétere az utolsó sor olvasásához szükséges jelző átadása (igaz, ha a sor az utolsó, hamis, ha nem). A második az, hogy mint minden üzletben, itt is figyelnünk kell a hibákra. Az xml_get_error_code és az xml_error_string függvények felelősek ezért. Az első függvény megkapja a hibakódot, a második pedig a hiba szöveges leírását adja vissza a kapott kód alapján. Mi fog történni a hiba eredményeként - később megfontoljuk. Nem kevesebb mint hasznos funkció Az xml_get_current_line_number megmondja nekünk a fájl aktuálisan feldolgozott sorának számát.

És mint mindig, most is fel kell szabadítani a rendszer által elfoglalt erőforrásokat. XML-elemzéshez ez az xml_parser_free függvény:

xml_parser_free($xml_parser);

Itt megvizsgáltuk a fő funkciókat. Ideje látni őket működés közben. Ehhez egy nagyon egyszerű szerkezetű xml fájlt készítettem:




123

71234567890

Nevezzük ezt a fájlt data.xml-nek, és próbáljuk meg elemezni a következő kóddal:

Elem: $name
"; // elem neve $depth++; // a mélység növelése, hogy a böngésző behúzást jelenítsen meg foreach ($attrs mint $attr => $value) (>echo str_repeat(" ", $depth * 3); // behúzás // megjelenített név attribútuma és értéke echo "Attribútum: ".$attr." = ".$value."
"; ) ) függvény endElement($elemző, $név) ( globális $mélység; $mélység--; // mélység csökkentése ) $depth = 0; $file = "data.xml"; $xml_parser = xml_parser_create(); xml_set_element_handler ($xml_parser, "startElement", "endElement"); if (!($fp = fopen($file, "r"))) ( die("nem sikerült megnyitni az XML bemenetet"); ) while ($data = fgets ($fp)) ( if (!xml_parse($xml_parser, $data, feof($fp)))) ( echo "
XML-hiba: "; echo xml_error_string(xml_get_error_code($xml_parser)); echo " at " line ".xml_get_current_line_number($xml_parser); break; ) ) xml_parser_free($xml_parser); ?>

Az általunk kifejlesztett legegyszerűbb szkript eredményeként a böngésző a következő információkat jelenítette meg az ablakában:

Elem: ROOT
Elem: INFO
Tulajdonság: WHO = az enyém
Elem: CÍM

Tulajdonság: KVARTIRA=12
Attribútum: DOM=15
Elem: TELEFON

Próbáljuk meg elrontani az XML fájlt a címke cseréjével Tovább , és a záró címkét változatlanul hagyva:

Elem: ROOT
Elem: INFO
Tulajdonság: WHO = az enyém
Elem: CÍM
Tulajdonság: ULICA = az én utcám!!
Tulajdonság: KVARTIRA=12
Attribútum: DOM=15
Elem: TELEFON

XML-hiba: Nem egyező címke az 5. sorban

Azta! A hibaüzenetek működnek! És elég informatív.

Ó, még egy dolgot elfelejtettem... Nem jelenítettük meg a cím- és telefoncímkéken belüli szöveget. Kijavítjuk a hiányosságunkat - hozzáadunk egy szövegkezelőt az xml_set_character_data_handler függvény segítségével:

xml_set_character_data_handler($xml_parser, 'stringElement');

És adja hozzá magát a kezelő függvényt a kódhoz.

Most az XML-lel való munkát fogjuk tanulmányozni. Az XML a webhelyek közötti adatcsere formátuma. Nagyon hasonlít a HTML-hez, csak az XML engedélyezi a saját címkéit és attribútumait.

Miért van szükség XML-re az elemzéshez? Néha előfordul, hogy az elemezni kívánt webhelynek van egy API-ja, amely lehetővé teszi, hogy különösebb erőfeszítés nélkül megkapja, amit akar. Ezért azonnal tanácsot adjon – a webhely elemzése előtt ellenőrizze, hogy van-e API-ja.

Mi az API? Ez egy olyan funkciókészlet, amellyel kérést küldhet erre az oldalra, és megkaphatja a kívánt választ. Ez a válasz leggyakrabban XML formátumban érkezik. Tehát kezdjük el tanulmányozni.

XML-lel végzett munka PHP-ben

Tegyük fel, hogy van XML-je. Lehet karakterláncban, fájlban tárolva, vagy kérésre kiszolgálható egy adott URL-re.

Legyen az XML egy karakterláncban tárolva. Ebben az esetben ebből a sorból kell létrehoznia egy objektumot a segítségével új SimpleXMLElement:

$str = " Kolya 25 1000 "; $xml = new SimpleXMLElement($str);

Most van egy változónk $xml elemzett XML-lel rendelkező objektum kerül tárolásra. Az objektum tulajdonságainak elérésével hozzáférhet az XML-címkék tartalmához. Hogyan pontosan - egy kicsit lejjebb elemezzük.

Ha az XML fájlban van tárolva, vagy egy URL elérésével tér vissza (ami leggyakrabban így van), akkor használja a függvényt simplexml_load_file amely ugyanazt a tárgyat teszi $xml:

Kolya 25 1000

$xml = simplexml_load_file(fájl elérési útja vagy url);

Munkamódszerek

Az alábbi példákban az XML-t fájlban vagy URL-ben tároljuk.

Legyen megadva a következő XML:

Kolya 25 1000

Nézzük meg egy alkalmazott nevét, életkorát és fizetését:

$xml = simplexml_load_file(fájl elérési útja vagy url); echo $xml->name; //megjeleníti a "Kolya" echo $xml->age; //kimenetek 25 echo $xml->fizetés; //1000-et ad ki

Amint látható, a $xml objektum a címkéknek megfelelő tulajdonságokkal rendelkezik.

Talán észrevetted, hogy a címke sehol nem jelenik meg a forgalomban. Ez azért van, mert ez a gyökércímke. Átnevezheti például a következőre - és semmi sem fog változni:

Kolya 25 1000

$xml = simplexml_load_file(fájl elérési útja vagy url); echo $xml->name; //megjeleníti a "Kolya" echo $xml->age; //kimenetek 25 echo $xml->fizetés; //1000-et ad ki

Az XML-ben csak egy gyökércímke lehet, akárcsak a gyökércímke sima HTML-ben.

Módosítsuk egy kicsit az XML-ünket:

Kolya 25 1000

Ebben az esetben egy hívásláncot kapunk:

$xml = simplexml_load_file(fájl elérési útja vagy url); echo $xml->dolgozó->név; //megjeleníti "Kolya" echo $xml->worker->age; //25-öt ad ki echo $xml->dolgozó->bér; //1000-et ad ki

Munka az attribútumokkal

Néhány adatot tároljunk attribútumokban:

1. szám

$xml = simplexml_load_file(fájl elérési útja vagy url); echo $xml->dolgozó["név"]; //megjeleníti "Kolya" echo $xml->worker["age"]; //kimenet 25 echo $xml->dolgozó["fizetés"]; //kimenetek 1000 echo $xml->worker; //kiírja az "1-es számot"

Címkék kötőjelekkel

Az XML-ben a kötőjellel ellátott címkék (és attribútumok) megengedettek. Ebben az esetben az ilyen címkék a következőképpen érhetők el:

Kolya Ivanov

$xml = simplexml_load_file(fájl elérési útja vagy url); echo $xml->dolgozó->(keresztnév); //megjeleníti "Kolya" echo $xml->worker->(last-name); //megjeleníti az "Ivanov" kifejezést

Hurok iteráció

Most ne egy munkásunk legyen, hanem több. Ebben az esetben egy foreach ciklussal iterálhatjuk az objektumunkat:

Kolya 25 1000 Vasya 26 2000 Péter 27 3000

$xml = simplexml_load_file(fájl elérési útja vagy url); foreach ($xml mint $worker) ( echo $worker->name; //kiírja: "Kolya", "Vasya", "Petya" )

Objektumtól normál tömbig

Ha nem érzi jól magát egy objektummal dolgozni, a következő trükkel átalakíthatja azt normál PHP tömbbé:

$xml = simplexml_load_file(fájl elérési útja vagy url); var_dump(json_decode(json_encode($xml), true));

Több információ

Elemzés a sitemap.xml alapján

Egy webhely gyakran tartalmaz egy sitemap.xml fájlt. Ez a fájl a webhely összes oldalára mutató hivatkozásokat tárol a keresőmotorok általi indexelés megkönnyítése érdekében (az indexelés valójában a webhely Yandex és Google általi elemzése).

Általában nem kell sokat törődnünk azzal, hogy miért van szükség erre a fájlra, a lényeg az, hogy ha létezik, akkor ne mászhasson fel az oldal oldalain semmilyen trükkös módszerrel, hanem egyszerűen használja ezt a fájlt.

A fájl meglétének ellenőrzése: elemezzük a site.ru webhelyet, majd keresse fel a site.ru/sitemap.xml fájlt a böngészőben - ha lát valamit, akkor ott van, és ha nem látja, akkor sajnos.

Ha van webhelytérkép, akkor az XML formátumban tartalmazza a webhely összes oldalára mutató hivatkozásokat. Nyugodtan vegye ezt az XML-t, elemezze, különítse el a szükséges oldalakra mutató hivatkozásokat az Ön számára megfelelő módon (például a spider módszernél leírt URL elemzésével).

Ennek eredményeként megkapja az elemzéshez szükséges linkek listáját, és csak rá kell mennie, és elemeznie kell a szükséges tartalmat.

További információ a sitemap.xml eszközről a wikipédiában.

Mit csinálsz ezután:

Kezdje el a feladatok megoldását az alábbi linken: feladatok a leckéhez.

Ha minden eldőlt, folytassa egy új téma tanulmányozásával.

XML elemző egy olyan program, amely kivonja az adatokat egy forrás xml fájlból, és elmenti vagy felhasználja a későbbi műveletekhez.

Miért van szükség xml-elemzőkre?

Először is azért, mert maga az xml formátum népszerű a számítógépes szabványok között. Az XML fájl így néz ki:

azok. valójában vannak címkék, van néhány szabály, hogy melyik címkéknek követniük kell egymást.

A népszerűség oka xml fájlokat az, hogy jól olvasható az ember számára. És az, hogy viszonylag könnyen feldolgozható programokban.

Az xml fájlok hátrányai.

A hátránya elsősorban nagyszámú az adatok által elfoglalt lemezterület. Tekintettel arra, hogy a folyamatosan ismétlődő, nagy adatmennyiséggel rendelkező címkék viszonylag sok megabájtot foglalnak el, amit egyszerűen le kell tölteni a forrásból, majd feldolgozni. Vannak alternatívák? Természetesen vannak, de az xml és az xml elemzők ma az egyik legegyszerűbb és legmegbízhatóbb és technológiailag legnépszerűbb formátum.

Hogyan íródnak az XML-elemzők?

Az elemzők programozási nyelveken vannak megírva. Ahogy mondani szokták, mindenkinek meg vannak írva, de egyeseknek már nem. Meg kell érteni, hogy vannak olyan programozási nyelvek, amelyek már rendelkeznek beépített könyvtárakkal az xml fájlok elemzéséhez. De mindenesetre, még ha nincs is könyvtár, mindig találhat erre az esetre megfelelő könyvtárat, és ezzel kinyerheti az adatokat egy fájlból.

Globálisan 2 különböző megközelítés létezik az xml-fájlok elemzésére.

Az első az xml fájl teljes betöltése a memóriába, majd adatkinyerési műveletek elvégzése.

A második a streaming lehetőség. Ebben az esetben a programozási nyelv meghatároz bizonyos címkéket, amelyekre a létrehozott xml elemző funkcióinak válaszolniuk kell, és a programozó maga dönti el, hogy mit tegyen, ha egy adott címkét talál.

Az első megközelítés előnye a gyorsaság. Azonnal betöltöttem a fájlt, majd gyorsan átfutottam a memórián és megtaláltam, amire szükségem volt, és ami a legfontosabb, könnyű volt programozni. de van egy mínusz és egy nagyon fontos - ez

a működéshez nagy mennyiségű memória szükséges. Néha, mondhatnám, gyakran előfordul, hogy egyszerűen lehetetlen egy xml fájlt feldolgozni és elemezni, pl. hozzon létre egy xml-elemzőt, hogy az megfelelően működjön az első módszer szerint. Miert van az? Nos, például a Windows alatti 32 bites alkalmazások korlátozása lehetővé teszi, hogy a program legfeljebb 2 gigabájt memóriát foglaljon el – nem többet.

Az inline programozás azonban nehéz. A bonyolultság kellően komoly kitermeléssel sokszorosára nő, ami ennek megfelelően kihat az időzítésre és a költségvetésre is.

Az xml fájlok és elemzők érvényessége.

Minden rendben lenne az xml fájlokkal és az xml elemzőkkel, de van egy probléma. Tekintettel arra, hogy "bármelyik iskolás" tud xml fájlt készíteni, de a valóságban az (mivel sok kódot írnak az iskolások, érvénytelen fájlok jelennek meg, azaz hibásak. Mit jelent ez és mit tartalmaz A legnagyobb probléma az, hogy egyszerűen lehetetlen néha helyesen elemezni egy érvénytelen fájlt.Például a címkéi nincsenek bezárva a szabvány által elvárt módon, vagy például a kódolás helytelenül van beállítva.A másik probléma az, hogy ha pl csinálsz egy értelmezőt a .net-en, csinálhatsz úgynevezett wrappereket, és a legbosszantóbb az, hogy csinálsz egy ilyen wrapper-et, majd elolvasod azt a fájlt, amit a "diák" készített, és a fájl érvénytelen és lehetetlen olvasni. Ezért haragudnia kell, és nagyon-nagyon népszerűtlen lehetőségekhez kell folyamodnia az ilyen fájlok elemzéséhez. \u003d mert sokan szabványos könyvtárak használata nélkül hoznak létre xml fájlokat, és teljes undorral minden xml fájlszabványtól. Nehéz az ügyfeleknek ezt elmagyarázni.Várják az eredményt - egy xml-elemzőt, amely az adatokat az eredeti fájlból más formátumba konvertálja.

XML-elemzők létrehozása (első lehetőség)

Az XML adatokhoz létezik egy ilyen lekérdezési nyelv, mint az Xpath. Ennek a nyelvnek két kiadása van, nem foglalkozunk az egyes verziók jellemzőivel. Ha jobban megérti ezt a nyelvet, akkor példákat fog mutatni arra, hogyan kell használni az adatok kinyerésére. Például.

//div[@class="supcat guru"]/a

mit tesz ez a kérés. Minden olyan címkére van szükség, amelynek gerince tartalmazza a catalog.xml?hid= szöveget, és egy címkének gyermek divnek kell lennie, amelynek osztálya supcat guru.

Igen, elsőre lehet, hogy nem elég egyértelmű, de akkor is kitalálhatod, ha akarod. A kiindulópont számomra a http://ru.wikipedia.org/wiki/XPath, és azt tanácsolom.

A minap elkezdtem átdolgozni cégem belső jelentési rendszerét, melynek általános felépítéséről nem is olyan régen írtam. Előítéletek nélkül elmondom, hogy PHP terén magam fölé nőttem, és ennek eredményeként rájöttem, hogy a rendszer algoritmusa elég ferde ahhoz, hogy átírjam.

Ezt megelőzően az XML dokumentumot a PHP 4. verziójából kölcsönzött függvényekkel elemezték. A PHP5 azonban egy nagyon praktikus dolgot adott a világnak, a SimpleXML-t. Hogyan kell vele dolgozni, és ma lesz szó róla.

Érdemes azzal kezdeni, hogy a SimpleXML egy külön beépülő modul, ezért előzetesen csatlakoztatni kell a használt szerveren.

Most már dolgozhatunk!

A dokumentum feldolgozásához a simplexml_load_file() függvényt használjuk. Paraméterként egy fájl címét adja át az eXtended Markup Language (XML – Your K.O.) formátumban.

Ennek a funkciónak az a szépsége, hogy könnyedén átvihet fájlokat bármelyik szerverről arra. Így lehetőségünk van külső xml-feltöltések feldolgozására (például Yandex-XML vagy harmadik féltől származó RSS-hírcsatornák).

A függvény kimenete egy tömb. A buktató, amellyel találkoztam, az, hogy az XML-nek nehézkes felépítése lehet, ezért azt tanácsolom, hogy kezdje a figuratív nyomkövetéssel, és adjon ki egy tömböt, hogy megértse, hogyan dolgozta fel a függvény azt. Ezt követően megkezdheti a kapott adatok feldolgozását.

Például egy egyszerű konstrukciót innen veszek:


>
>
> PHP: Megjelenik az elemző >
>
>
> Kisasszony. kódoló >
> Onlivia Actora >
>
>
> Úr. kódoló >
> El ActÓr >
>
> > Úr. elemző > > gipsz Jakab > > >
>
Tehát ez egy nyelv. Ez még mindig egy programozási nyelv. Vagy
ez egy script nyelv? Ebből a dokumentumfilmből minden kiderül
horrorfilmhez hasonló.
>
>
> A PHP minden problémámat megold a weben >
>
7>
5>
PG > >
>

Legyen ez az export.xml fájl, amely közvetlenül a szerverem gyökerében található, az azt feldolgozó szkripttel együtt.
A tömb az XML dokumentum DOM-elemeinek szerkezete szerint épül fel. A feldolgozás a gyökértől kezdődik. A név megszerzéséhez Ms. Coder, a következő elérési utat kell megépítenünk: $xml->movies->movie->characters->character->name.
Felhívom a figyelmet arra, hogy konkrét értéket választunk. Innen származik az ilyen jellegű karakterek rekordja – ne felejtsük el, hogy tömbbel dolgozunk!

Mint minden tömb, adataink is feldolgozhatók foreach ciklus segítségével. A kód így lesz:

$xml = simplexml_load_file("export.xml" ) ; //feltöltötte a fájlt
$ttl = $xml -> filmek -> film -> cím ; //kapja meg a fejlécet. ez egy, tehát nem kell másik értéket beállítania

foreach ($xml -> filmek -> film -> karakterek mint $crc) // és most dolgozzunk a dinamikán
{
//nyomtassa ki a hősök nevét
$név = $crc -> karakter -> név ;
visszhang(" $név
"
) ;
}

Ez a kód a „PHP: Megjelenik az elemző” szöveget helyezi a $ttl változóba, majd soronként megjeleníti a képernyőn a karakterek nevét.
Kisasszony. Kódoló, Mr. Kódoló, Mr. elemző.

Most az XML-lel való munkát fogjuk tanulmányozni. Az XML a webhelyek közötti adatcsere formátuma. Nagyon hasonlít a HTML-hez, csak az XML engedélyezi a saját címkéit és attribútumait.

Miért van szükség XML-re az elemzéshez? Néha előfordul, hogy az elemezni kívánt webhelynek van egy API-ja, amely lehetővé teszi, hogy különösebb erőfeszítés nélkül megkapja, amit akar. Ezért azonnal tanácsot adjon – a webhely elemzése előtt ellenőrizze, hogy van-e API-ja.

Mi az API? Ez egy olyan funkciókészlet, amellyel kérést küldhet erre az oldalra, és megkaphatja a kívánt választ. Ez a válasz leggyakrabban XML formátumban érkezik. Tehát kezdjük el tanulmányozni.

XML-lel végzett munka PHP-ben

Tegyük fel, hogy van XML-je. Lehet karakterláncban, fájlban tárolva, vagy kérésre kiszolgálható egy adott URL-re.

Legyen az XML egy karakterláncban tárolva. Ebben az esetben ebből a sorból kell létrehoznia egy objektumot a segítségével új SimpleXMLElement:

$str = " Kolya 25 1000 "; $xml = new SimpleXMLElement($str);

Most van egy változónk $xml elemzett XML-lel rendelkező objektum kerül tárolásra. Az objektum tulajdonságainak elérésével hozzáférhet az XML-címkék tartalmához. Hogyan pontosan - egy kicsit lejjebb elemezzük.

Ha az XML fájlban van tárolva, vagy egy URL elérésével tér vissza (ami leggyakrabban így van), akkor használja a függvényt simplexml_load_file amely ugyanazt a tárgyat teszi $xml:

Kolya 25 1000

$xml = simplexml_load_file(fájl elérési útja vagy url);

Munkamódszerek

Az alábbi példákban az XML-t fájlban vagy URL-ben tároljuk.

Legyen megadva a következő XML:

Kolya 25 1000

Nézzük meg egy alkalmazott nevét, életkorát és fizetését:

$xml = simplexml_load_file(fájl elérési útja vagy url); echo $xml->name; //megjeleníti a "Kolya" echo $xml->age; //kimenetek 25 echo $xml->fizetés; //1000-et ad ki

Amint látható, a $xml objektum a címkéknek megfelelő tulajdonságokkal rendelkezik.

Talán észrevetted, hogy a címke sehol nem jelenik meg a forgalomban. Ez azért van, mert ez a gyökércímke. Átnevezheti például a következőre - és semmi sem fog változni:

Kolya 25 1000

$xml = simplexml_load_file(fájl elérési útja vagy url); echo $xml->name; //megjeleníti a "Kolya" echo $xml->age; //kimenetek 25 echo $xml->fizetés; //1000-et ad ki

Az XML-ben csak egy gyökércímke lehet, akárcsak a gyökércímke sima HTML-ben.

Módosítsuk egy kicsit az XML-ünket:

Kolya 25 1000

Ebben az esetben egy hívásláncot kapunk:

$xml = simplexml_load_file(fájl elérési útja vagy url); echo $xml->dolgozó->név; //megjeleníti "Kolya" echo $xml->worker->age; //25-öt ad ki echo $xml->dolgozó->bér; //1000-et ad ki

Munka az attribútumokkal

Néhány adatot tároljunk attribútumokban:

1. szám

$xml = simplexml_load_file(fájl elérési útja vagy url); echo $xml->dolgozó["név"]; //megjeleníti "Kolya" echo $xml->worker["age"]; //kimenet 25 echo $xml->dolgozó["fizetés"]; //kimenetek 1000 echo $xml->worker; //kiírja az "1-es számot"

Címkék kötőjelekkel

Az XML-ben a kötőjellel ellátott címkék (és attribútumok) megengedettek. Ebben az esetben az ilyen címkék a következőképpen érhetők el:

Kolya Ivanov

$xml = simplexml_load_file(fájl elérési útja vagy url); echo $xml->dolgozó->(keresztnév); //megjeleníti "Kolya" echo $xml->worker->(last-name); //megjeleníti az "Ivanov" kifejezést

Hurok iteráció

Most ne egy munkásunk legyen, hanem több. Ebben az esetben egy foreach ciklussal iterálhatjuk az objektumunkat:

Kolya 25 1000 Vasya 26 2000 Péter 27 3000

$xml = simplexml_load_file(fájl elérési útja vagy url); foreach ($xml mint $worker) ( echo $worker->name; //kiírja: "Kolya", "Vasya", "Petya" )

Objektumtól normál tömbig

Ha nem érzi jól magát egy objektummal dolgozni, a következő trükkel átalakíthatja azt normál PHP tömbbé:

$xml = simplexml_load_file(fájl elérési útja vagy url); var_dump(json_decode(json_encode($xml), true));

Több információ

Elemzés a sitemap.xml alapján

Egy webhely gyakran tartalmaz egy sitemap.xml fájlt. Ez a fájl a webhely összes oldalára mutató hivatkozásokat tárol a keresőmotorok általi indexelés megkönnyítése érdekében (az indexelés valójában a webhely Yandex és Google általi elemzése).

Általában nem kell sokat törődnünk azzal, hogy miért van szükség erre a fájlra, a lényeg az, hogy ha létezik, akkor ne mászhasson fel az oldal oldalain semmilyen trükkös módszerrel, hanem egyszerűen használja ezt a fájlt.

A fájl meglétének ellenőrzése: elemezzük a site.ru webhelyet, majd keresse fel a site.ru/sitemap.xml fájlt a böngészőben - ha lát valamit, akkor ott van, és ha nem látja, akkor sajnos.

Ha van webhelytérkép, akkor az XML formátumban tartalmazza a webhely összes oldalára mutató hivatkozásokat. Nyugodtan vegye ezt az XML-t, elemezze, különítse el a szükséges oldalakra mutató hivatkozásokat az Ön számára megfelelő módon (például a spider módszernél leírt URL elemzésével).

Ennek eredményeként megkapja az elemzéshez szükséges linkek listáját, és csak rá kell mennie, és elemeznie kell a szükséges tartalmat.

További információ a sitemap.xml eszközről a wikipédiában.

Mit csinálsz ezután:

Kezdje el a feladatok megoldását az alábbi linken: feladatok a leckéhez.

Ha minden eldőlt, folytassa egy új téma tanulmányozásával.

Ha hibát észlel, jelöljön ki egy szövegrészt, és nyomja meg a Ctrl + Enter billentyűket
OSSZA MEG: