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ą.
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 "
vardas | Kaina |
---|---|
$ 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 "
vardas | Kaina |
---|---|
$ 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 "
Prekės ženklas | vardas | Kaina |
---|---|---|
$ 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 = <<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.