php

Xpath () naudojimas PHP

Xpath () naudojimas PHP
XML dokumentas naudojamas nedideliam duomenų kiekiui laikyti, o kartais jo reikia perskaityti konkretų XML dokumento turinį pagal kelio vertę naudojant PHP scenarijų. xpath () funkcija naudojama XML dokumento turiniui išanalizuoti. Šią funkciją galima naudoti naudojant simplexml_load_file () funkciją arba sukuriant PaprastasXMLElementas klasė. Funkciją „xpath ()“ galima naudoti norint nuskaityti konkrečias XML mazgo reikšmes, pateiktas šioje pamokoje.

Sintaksė:

Funkcijos xpath () sintaksė pateikta žemiau.

masyvas xpath (eilutė $ path)

Ši funkcija turi vieną argumentą, kuris užima kelio reikšmę, ir jei kelias egzistuoja bet kuriame XML dokumento mazge, mazgo vertė bus grąžinta kaip masyvas. Skirtingi šios funkcijos naudojimo būdai paaiškinti kitoje šios pamokos dalyje.

Sukurti XML dokumentą:

Sukurkite XML failą pavadinimu Produktai.xml su tokiu turiniu toje vietoje, kur bus sukurtas PHP failas išanalizuoti šį failą.




MN-56345
DELL
15 colių „Dell“ monitorius
700


HD-34278
SAMSUNG
1 TB „Samsung“ HDD
520


MS-67457
LOGITECH
Belaidis pelė „Logitech“
100


MN-76453
HP
14 colių HP monitorius
750

Naudojimas simplexml_load_file () funkcija:

Funkcija xpath () su objektu, kurį sukūrė funkcija simplexml_load_file (), buvo parodyta šioje šios mokymo programos dalyje.

1 pavyzdys: perskaitykite konkrečias XML mazgo reikšmes

Šiame pavyzdyje parodyta, kaip nuskaityti konkretaus mazgo reikšmių turinį iš XML dokumento, apibrėžiant funkcijos kelią xpath (). Objekto kintamasis, $ xml yra sukurtas nuskaityti specifines mazgo reikšmes Produktai.xml failą. "/ PRODUKTAI / PRODUKTAS / ŽENKLAS" yra naudojamas xpath (), norint nuskaityti visas BRAND mazgo reikšmes. „/ PRODUKTAI / PRODUKTAS“ yra naudojamas xpath (), norint nuskaityti visas antrinio mazgo reikšmes PREKĖ mazgai. kiekvienam ciklas naudojamas atspausdinti reikšmes VARDAS ir KAINA mazgai.

// Sukurti objektą XML failui skaityti
$ xml = simplexml_load_file ('produktai.xml ');
// Ieškokite visų BRAND mazgų reikšmių
$ brand = $ xml-> xpath ('/ PRODUKTAI / PRODUKTAS / ŽENKLAS');
// Spausdinti masyvo reikšmes
aidas "

Prekės ženklų sąrašas yra:

";
foreach („$ brand“ kaip „$ name“)
echo "$ name
";

// Ieškokite visų „PRODUCT“ mazgo reikšmių
$ produktai = $ xml-> xpath ('/ PRODUCTS / PRODUCT');
aidas "

Produkto pavadinimo ir kainos sąrašas:

";
aidas "";
aidas "";
// Spausdinti masyvo reikšmes
foreach ($ produktai kaip $ produktas)
aidas "";

aidas "
vardasKaina
$ product-> NAME $$ produktas-> KAINA
";
?>

Išvestis:

Ši išvestis bus rodoma paleidus scenarijų iš serverio.

2 pavyzdys: perskaitykite konkrečias XML mazgo reikšmes pagal sąlygą

Šiame pavyzdyje parodyta, kaip nuskaityti konkrečias mazgo reikšmes pagal sąlygą naudojant funkciją xpath (). Kelio vertė, „/ PRODUKTAI / PRODUKTAS [KAINA> 600]“, ieškos visų vaikų mazgų reikšmių PREKĖ mazgas, kur vertė KAINA mazgas yra didesnis nei 600. kiekvienam ciklas naudojamas atspausdinti reikšmes VARDAS ir KAINA mazgai.

// Sukurti objektą XML failui skaityti
$ xml = simplexml_load_file ('produktai.xml ');
// Ieškokite produktų, kurių kainos vertė yra didesnė nei 600
$ produktai = $ xml-> xpath ('/ PRODUKTAI / PRODUKTAS [KAINA> 600]');
aidas "

Produkto pavadinimo ir kainos sąrašas, kai kaina yra didesnė nei 600:

";
aidas "";
aidas "";
// Spausdinti masyvo reikšmes
foreach ($ produktai kaip $ produktas)
aidas "";

aidas "
vardasKaina
$ product-> NAME $$ produktas-> KAINA
";
?>

Išvestis:

Ši išvestis bus rodoma paleidus scenarijų iš serverio.

3 pavyzdys: perskaitykite konkrečias XML mazgo reikšmes pagal atributą

Šiame pavyzdyje parodyta, kaip nuskaityti konkrečias mazgo reikšmes pagal XML dokumento konkretaus mazgo atributų reikšmes naudojant funkciją xpath (). Kelio vertė, „/ PRODUKTAI / PRODUKTAS [@ category =” Monitorius]] ” ieškos visų vaikų mazgų reikšmių produktas mazgas, kuriame yra kategorijos atributo vertė Monitorius. kiekvienam ciklas naudojamas atspausdinti reikšmes MARKĖS PAVADINIMAS, ir KAINA mazgai.

// Sukurti objektą XML failui skaityti
$ xml = simplexml_load_file ('produktai.xml ');
// Ieškokite produktų, kuriuose atributo çategory reikšmė yra „Monitorius“
$ produktai = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
aidas "

Produkto prekės ženklo, pavadinimo ir kainos sąrašas pagal kategoriją (Monitorius):

";
aidas "";
aidas "";
// Spausdinti masyvo reikšmes
foreach ($ produktai kaip $ produktas)
aidas "";

aidas "
Prekės ženklasvardasKaina
$ produktas-> ŽENKLAS$ product-> NAME $$ produktas-> KAINA
";
?>

Išvestis:

Ši išvestis bus rodoma paleidus scenarijų iš serverio.

Naudojimas PaprastasXMLElementas klasė:

Funkcijos xpath () naudojimas kuriant „SimpleXMLElement“ klasės objektą buvo parodytas šioje šios mokymo programos dalyje.

4 pavyzdys: „xpath“ () naudojimas apibrėžiant kintamojo XML turinį

Šiame pavyzdyje parodyta, kaip skaityti XML dokumento mazgo reikšmes, nurodytas kintamajame, o ne failą. XML turinys saugomas $ xml_data kintamasis. „/ Klientai / klientas“ yra naudojamas kaip xpath () funkcijos argumento reikšmė, kad būtų galima nuskaityti visas klientas mazgas. Kitas, a kiekvienam ciklas naudojamas atspausdinti reikšmes pavadinimas mazgas. „/ Klientai / klientas [@ department = 'HR']“ yra naudojamas kaip kitos xpath () funkcijos argumento reikšmė nuskaityti visas kliento mazgo antrinių mazgų reikšmes, kur skyrius atributas yra HR. Kitas, a kiekvienam kilpa naudojama spausdinti paštu mazgas.

$ xml_data = <<

Md. Mahbubas
[apsaugotas el. paštu]


Farhana Zamanas
[apsaugotas el. paštu]


XML;
// Apibrėžkite objektą XML duomenims skaityti
$ xml = new SimpleXMLElement ($ xml_data);
// Apibrėžkite kelią skaityti visus klientų duomenis
$ klientai = $ xml-> xpath ("/ klientai / klientas");
// Atspausdinkite klientų vardus
aidas "

Klientų vardų sąrašas:

";
foreach ($ klientai kaip $ klientas)
aidas "$ klientas-> vardas
";

// Apibrėžkite kelią perskaityti visus personalo skyriaus klientų duomenis
$ klientai = $ xml-> xpath ("/ klientai / klientas [@ department = 'HR']");
// Atspausdinkite klientų el. Paštą
aidas "

Kliento elektroninio pašto skyrius:

";
foreach ($ klientai kaip $ klientas)
aidi "$ klientas-> el
";

?>

Išvestis:

Ši išvestis bus rodoma paleidus scenarijų iš serverio.

Išvada:

Dvi skirtingi funkcijos xpath () naudojimo būdai, norint nuskaityti XML dokumento mazgo reikšmes, remiantis konkrečiu keliu arba keliu su sąlyga, arba kelias su atributo verte, buvo paaiškinti šioje pamokoje naudojant kelis pavyzdžius.

Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...
10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...
5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...