Sintakse:
Funkcijas xpath () sintakse ir sniegta zemāk.
masīvs xpath (virkne $ path)Šai funkcijai ir viens arguments, kas ņem ceļa vērtību, un, ja ceļš pastāv jebkurā XML dokumenta mezglā, tad mezgla vērtība tiks atgriezta kā masīvs. Dažādi šīs funkcijas izmantošanas veidi ir izskaidroti šīs apmācības nākamajā daļā.
Izveidot XML dokumentu:
Izveidojiet XML failu ar nosaukumu produktiem.xml ar šādu saturu vietā, kur tiks izveidots PHP fails, lai parsētu šo failu.
Izmantošana simplexml_load_file () funkcija:
Funkcija xpath () ar objektu, ko izveidojusi funkcija simplexml_load_file (), ir parādīta šajā apmācības daļā.
1. piemērs: nolasiet konkrētās XML mezgla vērtības
Šajā piemērā parādīts, kā no XML dokumenta nolasīt konkrēto mezglu vērtību saturu, nosakot funkcijas ceļu xpath (). Objekta mainīgais, $ xml ir izveidots, lai nolasītu specifiskās mezgla vērtības produktiem.xml failu. "/ PRODUKTI / PRODUKTS / ZĪMOLS" tiek izmantots xpath (), lai nolasītu visas BRAND mezgla vērtības. "/ PRODUKTI / PRODUKTS" tiek izmantots xpath (), lai nolasītu visas bērna mezglu vērtības PRODUKTS mezgli. katram cilpa tiek izmantota, lai drukātu vērtības NAME un CENA mezgli.
// Izveidojiet objektu XML faila lasīšanai$ xml = simplexml_load_file ('produkti.xml ');
// Meklēt visās BRAND mezglu vērtībās
$ zīmols = $ xml-> xpath ('/ PRODUCTS / PRODUCT / BRAND');
// Izdrukājiet masīva vērtības
atbalss "
Zīmolu nosaukumu saraksts ir šāds:
";foreach ($ brand kā $ name)
atbalss "$ nosaukums
";
// Meklēt visās PRODUCT mezgla vērtībās
$ produkti = $ xml-> xpath ('/ PRODUCTS / PRODUCT');
atbalss "
Produkta nosaukuma un cenas saraksts:
";atbalss "
Nosaukums | Cena |
---|---|
$ product-> NAME | $$ produkts-> PRICE |
?>
Izeja:
Pēc skripta palaišanas no servera parādīsies šāda izeja.
2. piemērs: nolasiet konkrētās XML mezgla vērtības, pamatojoties uz nosacījumu
Šajā piemērā parādīts, kā nolasīt konkrēto mezglu vērtības, pamatojoties uz nosacījumu, izmantojot funkciju xpath (). Ceļa vērtība, "/ PRODUKTI / PRODUKTS [CENA> 600]", meklēs visu bērnu mezglu vērtības PRODUKTS mezgls, kur vērtība CENA mezglā ir vairāk nekā 600. katram cilpa tiek izmantota, lai drukātu vērtības NAME un CENA mezgli.
// Izveidojiet objektu XML faila lasīšanai$ xml = simplexml_load_file ('produkti.xml ');
// Meklējiet produktus, kur cenas vērtība pārsniedz 600
$ produkti = $ xml-> xpath ('/ PRODUCTS / PRODUCT [PRICE> 600]');
atbalss "
Produkta nosaukuma un cenas saraksts, ja cena ir lielāka par 600:
";atbalss "
Nosaukums | Cena |
---|---|
$ product-> NAME | $$ produkts-> PRICE |
?>
Izeja:
Pēc skripta palaišanas no servera parādīsies šāda izeja.
3. piemērs: nolasiet konkrētās XML mezgla vērtības, pamatojoties uz atribūtu
Šajā piemērā parādīts, kā nolasīt konkrēto mezglu vērtības, pamatojoties uz XML dokumenta īpašā mezgla atribūtu vērtībām, izmantojot funkciju xpath (). Ceļa vērtība, '/ PRODUKTI / PRODUKTS [@ category = ”Monitor”] ” meklēs visu bērnu mezglu vērtības produkts mezgls, kur ir kategorijas atribūta vērtība Monitor. katram cilpa tiek izmantota, lai drukātu vērtības ZĪMOLA NOSAUKUMS, un CENA mezgli.
// Izveidojiet objektu XML faila lasīšanai$ xml = simplexml_load_file ('produkti.xml ');
// Meklēt produktos, kur atribūta çategory vērtība ir 'Monitor'
$ produkti = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
atbalss "
Produktu zīmolu, nosaukumu un cenu saraksts, pamatojoties uz kategoriju (Monitor):
";atbalss "
Zīmols | Nosaukums | Cena |
---|---|---|
$ produkts-> ZĪMOLS | $ product-> NAME | $$ produkts-> PRICE |
?>
Izeja:
Pēc skripta palaišanas no servera parādīsies šāda izeja.
Izmantošana VienkāršsXMLElement klase:
Funkcijas xpath () izmantošana, izveidojot objekta SimpleXMLElement klasi, ir parādīta šajā apmācības daļā.
4. piemērs: xpath () izmantošana, definējot XML saturu mainīgajā
Šis piemērs parāda, kā faila vietā nolasīt mainīgajā deklarētās XML dokumenta mezglu vērtības. XML saturs tiek saglabāts $ xml_data mainīgais. “/ Klienti / klients” tiek izmantots kā funkcijas xpath () argumenta vērtība, lai nolasītu visas klientu mezgls. Tālāk, a katram cilpa tiek izmantota, lai drukātu vērtības vārds mezgls. “/ Klienti / klients [@ departaments = 'HR']” tiek izmantots kā citas xpath () funkcijas argumenta vērtība, lai nolasītu visas klienta mezgla pakārtoto mezglu vērtības, kur vērtība nodaļa atribūts ir HR. Nākamais, a katram cilpa tiek izmantota, lai drukātu e-pasts mezgls.
$ xml_data = <<XML;
// Definējiet objektu, lai lasītu XML datus
$ xml = new SimpleXMLElement ($ xml_data);
// Definējiet ceļu, lai lasītu visus klientu datus
$ klienti = $ xml-> xpath ("/ klienti / klients");
// Izdrukājiet klientu vārdu
atbalss "
Klientu vārdu saraksts:
";foreach ($ klienti kā $ klienti)
atbalss "$ klients-> vārds
";
// Definējiet ceļu visu HR nodaļas klientu datu lasīšanai
$ klienti = $ xml-> xpath ("/ klienti / klients [@ departaments = 'HR']");
// Izdrukājiet klientu e-pastu
atbalss "
Personāla nodaļas klienta e-pasts:
";foreach ($ klienti kā $ klienti)
atbalss "$ klients-> e-pasts
";
?>
Izeja:
Pēc skripta palaišanas no servera parādīsies šāda izeja.
Secinājums:
Šajā apmācībā, izmantojot vairākus piemērus, ir izskaidroti divi dažādi veidi, kā izmantot funkciju xpath () XML dokumenta mezglu vērtību nolasīšanai, pamatojoties uz konkrēto ceļu vai ceļu ar nosacījumu, vai ceļu ar atribūta vērtību.