Sintaxă:
Sintaxa funcției xpath () este dată mai jos.
matrice xpath (șir $ cale)Această funcție are un argument care ia o valoare de cale și, dacă calea există în orice nod al documentului XML, atunci valoarea nodului va fi returnată ca matrice. Diferite utilizări ale acestei funcții au fost explicate în următoarea parte a acestui tutorial.
Creați un document XML:
Creați un fișier XML numit produse.xml cu următorul conținut pe locația în care va fi creat fișierul PHP pentru a analiza acest fișier.
Utilizarea de simplexml_load_file () funcţie:
Funcția xpath () cu obiectul creat de funcția simplexml_load_file () s-a arătat în această parte a acestui tutorial.
Exemplu-1: Citiți valorile nodului XML specifice
Următorul exemplu arată cum să citiți conținutul anumitor valori ale nodului din documentul XML definind calea funcției xpath (). Variabila obiect, $ xml este creat pentru a citi valorile specifice ale nodului produse.xml fişier. „/ PRODUSE / PRODUS / MARCA” este utilizat în xpath () pentru a citi toate valorile nodului BRAND. „/ PRODUSE / PRODUS” este utilizat în xpath () pentru a citi toate valorile nodului copil al PRODUS noduri. pentru fiecare bucla este utilizată pentru a imprima valorile NUME și PREȚ noduri.
// Creați obiect pentru a citi fișierul XML$ xml = simplexml_load_file ('products.xml ');
// Căutați toate valorile nodului BRAND
$ brand = $ xml-> xpath ('/ PRODUSE / PRODUS / MARCA');
// Imprimați valorile matricei
ecou "
Lista numelor de marcă este:
";foreach (marca $ ca nume $)
ecou "$ nume
";
// Căutați toate valorile nodului PRODUCT
$ produse = $ xml-> xpath ('/ PRODUSE / PRODUS');
ecou "
Lista numelui și prețului produsului:
";ecou "
Nume | Preț |
---|---|
$ produs-> NUME | $$ produs-> PREȚ |
?>
Ieșire:
Următoarea ieșire va apărea după executarea scriptului de pe server.
Exemplul-2: Citiți valorile nodului XML specifice pe baza condiției
Următorul exemplu arată cum să citiți valorile de nod specifice pe baza condiției folosind funcția xpath (). Valoarea căii, „/ PRODUSE / PRODUS [PREȚ> 600]”, va căuta valorile tuturor nodurilor copil din PRODUS nod unde valoarea lui PREȚ nodul este mai mare de 600. pentru fiecare bucla este utilizată pentru a imprima valorile NUME și PREȚ noduri.
// Creați obiect pentru a citi fișierul XML$ xml = simplexml_load_file ('products.xml ');
// Căutați produsele în care valoarea prețului este mai mare de 600
$ produse = $ xml-> xpath ('/ PRODUSE / PRODUS [PRET> 600]');
ecou "
Lista denumirii și prețului produsului în cazul în care prețul este mai mare de 600:
";ecou "
Nume | Preț |
---|---|
$ produs-> NUME | $$ produs-> PREȚ |
?>
Ieșire:
Următoarea ieșire va apărea după executarea scriptului de pe server.
Exemplu-3: Citiți valorile nodului XML specifice pe baza atributului
Următorul exemplu arată cum să citiți valorile de nod specifice pe baza valorilor de atribut ale nodului specific al documentului XML utilizând funcția xpath (). Valoarea căii, '/ PRODUCTS / PRODUCT [@ category = ”Monitor”]' va căuta valorile tuturor nodurilor copil din produsul nod, unde este valoarea atributului de categorie Monitor. pentru fiecare bucla este utilizată pentru a imprima valorile MARCA, NUME, și PREȚ noduri.
// Creați obiect pentru a citi fișierul XML$ xml = simplexml_load_file ('products.xml ');
// Căutați produsele în care valoarea atributului çategory este „Monitor”
$ produse = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
ecou "
Lista mărcii, denumirii și prețului produsului în funcție de categorie (Monitor):
";ecou "
Marca | Nume | Preț |
---|---|---|
$ produs-> MARCA | $ produs-> NUME | $$ produs-> PREȚ |
?>
Ieșire:
Următoarea ieșire va apărea după executarea scriptului de pe server.
Utilizarea de SimpleXMLElement clasă:
Utilizările funcției xpath () prin crearea obiectului clasei SimpleXMLElement s-au arătat în această parte a acestui tutorial.
Exemplu-4: Utilizarea xpath () prin definirea conținutului XML într-o variabilă
Următorul exemplu arată cum să citiți valorile nodului documentului XML declarate într-o variabilă în locul fișierului. Conținutul XML este stocat în $ xml_data variabil. „/ Clienți / client” este folosit ca valoare argument a funcției xpath () pentru a citi toate valorile nodurilor copil ale fișierului client nodul. Apoi, a pentru fiecare bucla este utilizată pentru a imprima valorile numele nodul. „/ Customers / customer [@ department = 'HR']” este folosit ca valoarea argumentului unei alte funcții xpath () pentru a citi toate valorile nodurilor copil ale nodului client în care valoarea departament atributul este HR. Următorul, a pentru fiecare bucla este utilizată pentru a imprima valorile fișierului e-mail nodul.
$ xml_data = <<XML;
// Definiți obiectul pentru a citi datele XML
$ xml = new SimpleXMLElement ($ xml_data);
// Definiți calea pentru a citi toate datele clienților
$ clienți = $ xml-> xpath ("/ clienți / client");
// Imprimați numele clienților
ecou "
Lista numelor clienților:
";foreach ($ clienți ca $ clienți)
ecou „$ client-> nume
";
// Definiți calea pentru a citi toate datele clienților din departamentul de resurse umane
$ clienți = $ xml-> xpath ("/ clienți / client [@ departament = 'HR']");
// Imprimați e-mailul clienților
ecou "
E-mailul clientului din departamentul de resurse umane:
";foreach ($ clienți ca $ clienți)
ecou „$ client-> e-mail
";
?>
Ieșire:
Următoarea ieșire va apărea după executarea scriptului de pe server.
Concluzie:
Două moduri diferite de a utiliza funcția xpath () pentru a citi valorile nodului documentului XML bazate pe calea specifică sau calea cu condiția sau calea cu valoarea atributului au fost explicate în acest tutorial folosind exemple multiple.