php

Xpath () kasutamine PHP-s

Xpath () kasutamine PHP-s
XML-dokumenti kasutatakse väikese koguse andmete salvestamiseks ja mõnikord tuleb PHP-skripti abil lugeda XML-dokumendi konkreetset sisu tee väärtuse põhjal. Funktsiooni xpath () kasutatakse XML-dokumendi sisu sõelumiseks. Seda funktsiooni saab kasutada, kasutades simplexml_load_file () funktsiooni või luues objekti SimpleXMLElement klass. Funktsiooni xpath () saab kasutada selles õpetuses näidatud konkreetsete XML-sõlme väärtuste lugemiseks.

Süntaks:

Funktsiooni xpath () süntaks on toodud allpool.

massiiv xpath (string $ path)

Sellel funktsioonil on üks argument, mis võtab tee väärtuse ja kui tee on olemas XML-dokumendi suvalises sõlmes, tagastatakse sõlme väärtus massiivina. Selle funktsiooni erinevaid kasutusviise on selgitatud selle õpetuse järgmises osas.

XML-dokumendi loomine:

Looge XML-fail nimega tooted.xml järgmise sisuga PHP-faili loomise asukohas selle faili sõelumiseks.




MN-56345
DELL
15 tolline Delli monitor
700


HD-34278
SAMSUNG
1 TB Samsungi kõvaketas
520


MS-67457
LOGITECH
Logitech juhtmeta hiir
100


MN-76453
HP
14 tolline HP monitor
750

Kasutamine simplexml_load_file () funktsioon:

Funktsiooni xpath () koos funktsiooniga simplexml_load_file () loodud objektiga on näidatud selle õpetuse selles osas.

Näide 1: lugege konkreetseid XML-sõlme väärtusi

Järgmine näide näitab, kuidas konkreetse sõlme väärtuste sisu XML-dokumendist lugeda, määrates funktsiooni tee xpath (). Objekti muutuja, $ xml luuakse konkreetse sõlme väärtuste lugemiseks tooted.xml faili. "/ TOOTED / Toode / kaubamärk" kasutatakse xpath () -is kõigi BRAND-sõlme väärtuste lugemiseks. "/ TOOTED / Toode" kasutatakse failis xpath () kõigi alamsõlme väärtuste lugemiseks TOOTE sõlmed. igaühele silmust kasutatakse väärtuste printimiseks NAME ja HIND sõlmed.

// Loo objekt XML-faili lugemiseks
$ xml = simplexml_load_file ('tooted.xml ');
// Otsige kõiki sõlme BRAND väärtusi
$ brand = $ xml-> xpath ('/ PRODUCTS / PRODUCT / BRAND');
// Prindi massiivi väärtused
kaja "

Brändide nimed on järgmised:

";
foreach ($ bränd kui $ nimi)
kaja "$ nimi
";

// Otsige kõiki teenuse PRODUCT sõlme väärtusi
$ tooted = $ xml-> xpath ('/ PRODUCTS / PRODUCT');
kaja "

Toote nimetuse ja hinna loetelu:

";
kaja "";
kaja "";
// Prindi massiivi väärtused
foreach ($ toodet kui $ toodet)
kaja "";

kaja "
NimiHind
$ product-> NAME $$ toode-> PRICE
";
?>

Väljund:

Järgmine väljund ilmub pärast skripti käivitamist serverist.

Näide 2: loe tingimuste põhjal konkreetseid XML-sõlme väärtusi

Järgmine näide näitab, kuidas funktsiooni xpath () abil teatud sõlme väärtusi lugeda tingimuse põhjal. Tee väärtus, "/ TOOTED / TOOTE [HIND> 600]", otsib kõigi lapse sõlmede väärtusi TOOTE sõlm, kus väärtus HIND sõlm on üle 600. igaühele silmust kasutatakse väärtuste printimiseks NAME ja HIND sõlmed.

// Loo objekt XML-faili lugemiseks
$ xml = simplexml_load_file ('tooted.xml ');
// Otsige tooteid, kus hinnaväärtus on üle 600
$ tooted = $ xml-> xpath ('/ PRODUCTS / PRODUCT [PRICE> 600]');
kaja "

Toote nimetuse ja hinna loetelu, kui hind on üle 600:

";
kaja "";
kaja "";
// Prindi massiivi väärtused
foreach ($ toodet kui $ toodet)
kaja "";

kaja "
NimiHind
$ product-> NAME $$ toode-> PRICE
";
?>

Väljund:

Järgmine väljund ilmub pärast skripti käivitamist serverist.

3. näide: lugege atribuudi põhjal konkreetseid XML-sõlme väärtusi

Järgmine näide näitab, kuidas konkreetseid sõlme väärtusi lugeda XML-dokumendi konkreetse sõlme atribuudiväärtuste põhjal funktsiooni xpath () abil. Tee väärtus, "/ TOOTED / Toode [@ category =" Monitor "]" otsib kõigi lapse sõlmede väärtusi toote sõlm, kus kategooria atribuudi väärtus on Kuvar. igaühele silmust kasutatakse väärtuste printimiseks BRÄNDI NIMI, ja HIND sõlmed.

// Loo objekt XML-faili lugemiseks
$ xml = simplexml_load_file ('tooted.xml ');
// Otsige tooteid, kus atribuudi çategory väärtus on „Monitor”
$ tooted = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
kaja "

Toote kaubamärgi, nime ja hinna loend vastavalt kategooriale (Monitor):

";
kaja "";
kaja "";
// Prindi massiivi väärtused
foreach ($ toodet kui $ toodet)
kaja "";

kaja "
BrändNimiHind
$ toode-> BRÄND$ product-> NAME $$ toode-> PRICE
";
?>

Väljund:

Järgmine väljund ilmub pärast skripti käivitamist serverist.

Kasutamine SimpleXMLElement klass:

Funktsiooni xpath () kasutusalad klassi objekti SimpleXMLElement loomisel on näidatud selle õpetuse selles osas.

Näide 4: xpath () kasutamine muutuja XML-sisu määratlemisega

Järgmine näide näitab, kuidas faili asemel muutujaga deklareeritud XML-dokumendi sõlme väärtusi lugeda. XML-sisu on salvestatud $ xml_data muutuv. „/ Kliendid / klient” kasutatakse funktsiooni xpath () argumendiväärtusena klient sõlm. Järgmisena a igaühele silmust kasutatakse väärtuste printimiseks nimi sõlm. "/ Customers / customer [@ department = 'HR']" kasutatakse teise xpath () funktsiooni argumendiväärtusena kõigi kliendisõlme alamsõlmede kõigi väärtuste lugemiseks, kus osakond atribuut on HR. Järgmine, a igaühe jaoks silmust kasutatakse printimiseks e-post sõlm.

$ xml_data = <<

Md. Mahbub
[meiliga kaitstud]


Farhana Zaman
[meiliga kaitstud]


XML;
// XML-andmete lugemiseks määrake objekt
$ xml = uus SimpleXMLElement ($ xml_data);
// Määrake tee kõigi klientide andmete lugemiseks
$ kliendid = $ xml-> xpath ("/ kliendid / klient");
// Trükkige klientide nimi
kaja "

Kliendinimede loend:

";
foreach ($ klienti kui $ klient)
kaja "$ klient-> nimi
";

// Määratlege personaliosakonna kõigi kliendiandmete lugemise tee
$ kliendid = $ xml-> xpath ("/ kliendid / klient [@ department = 'HR']");
// Prindi klientide e-post
kaja "

Kliendi personaliosakonna e-post:

";
foreach ($ klienti kui $ klient)
kaja "$ klient-> e-post
";

?>

Väljund:

Järgmine väljund ilmub pärast skripti käivitamist serverist.

Järeldus:

Selles õpetuses on mitme näite abil selgitatud kahte erinevat viisi funktsiooni xpath () kasutamiseks XML-dokumendi sõlme väärtuste lugemiseks konkreetse tee või tingimuse või atribuudi väärtusega tee põhjal.

Tomb Raider for Linuxi õpetus
Shadow of the Tomb Raider on kaheteistkümnes täiendus seeria Tomb Raider - tegevus- ja seiklusmängude frantsiisile, mille on loonud Eidos Montreal. Ni...
Kuidas FPS-i suurendada Linuxis?
FPS tähistab Kaadrit sekundis. FPS-i ülesanne on mõõta kaadrisagedust video taasesitamisel või mängude esitamisel. Lihtsamalt öeldes nimetatakse iga s...
Parimad Oculus App Lab mängud
Kui olete Oculuse peakomplekti omanik, peate olema teadlik külglaadimisest. Kõrvalaadimine on protsess, millega installitakse peakomplekti mitte-poesi...