Syntax:
Syntax funkcie xpath () je uvedená nižšie.
pole xpath (reťazec $ cesta)Táto funkcia má jeden argument, ktorý preberá hodnotu cesty, a ak cesta existuje v ktoromkoľvek uzle dokumentu XML, hodnota uzla sa vráti ako pole. Rôzne použitia tejto funkcie sú vysvetlené v nasledujúcej časti tohto tutoriálu.
Vytvorte dokument XML:
Vytvorte súbor XML s názvom Produkty.xml s nasledujúcim obsahom v umiestnení, kde sa vytvorí súbor PHP na analýzu tohto súboru.
Použitie simplexml_load_file () funkcia:
V tejto časti tohto tutoriálu sa ukázala funkcia xpath () s objektom vytvoreným funkciou simplexml_load_file ().
Príklad 1: Prečítajte si konkrétne hodnoty uzlov XML
Nasledujúci príklad ukazuje, ako čítať obsah konkrétnych hodnôt uzlov z dokumentu XML definovaním cesty funkcie xpath (). Premenná objektu, $ xml je vytvorený na čítanie špecifických hodnôt uzlov súboru Produkty.xml spis. „/ PRODUKTY / PRODUKT / ZNAČKA“ sa používa v xpath () na čítanie všetkých hodnôt uzla BRAND. „/ PRODUKTY / PRODUKT“ sa používa v xpath () na čítanie všetkých hodnôt podradeného uzla VÝROBOK uzly. pre každý slučka slúži na tlač hodnôt NÁZOV a CENA uzly.
// Vytvorenie objektu na čítanie súboru XML$ xml = simplexml_load_file ('produkty.xml ');
// Vyhľadá všetky hodnoty uzla BRAND
$ brand = $ xml-> xpath ('/ PRODUCTS / PRODUCT / BRAND');
// Vytlačte hodnoty poľa
ozvena “
Zoznam značiek je:
";foreach (značka $ ako $ meno)
echo "$ meno
";
// Vyhľadá všetky hodnoty uzlov PRODUCT
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT');
ozvena “
Zoznam názvu a ceny produktu:
";ozvena “
názov | cena |
---|---|
$ product-> NAME | $$ produkt-> CENA |
?>
Výkon:
Po spustení skriptu zo servera sa objaví nasledujúci výstup.
Príklad 2: Prečítajte si konkrétne hodnoty uzlov XML na základe podmienky
Nasledujúci príklad ukazuje, ako čítať konkrétne hodnoty uzlov na základe stavu pomocou funkcie xpath (). Hodnota cesty, „/ PRODUKTY / PRODUKT [CENA> 600]“, prehľadá hodnoty všetkých podradených uzlov súboru VÝROBOK uzol, kde hodnota CENA uzol je viac ako 600. pre každý slučka slúži na tlač hodnôt NÁZOV a CENA uzly.
// Vytvorenie objektu na čítanie súboru XML$ xml = simplexml_load_file ('produkty.xml ');
// Hľadajte výrobky, ktorých cenová hodnota je viac ako 600
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT [PRICE> 600]');
ozvena “
Zoznam názvov a cien produktov, ktorých cena je vyššia ako 600:
";ozvena “
názov | cena |
---|---|
$ product-> NAME | $$ produkt-> CENA |
?>
Výkon:
Po spustení skriptu zo servera sa objaví nasledujúci výstup.
Príklad 3: Prečítajte si konkrétne hodnoty uzlov XML na základe atribútov
Nasledujúci príklad ukazuje, ako čítať konkrétne hodnoty uzlov na základe hodnôt atribútov konkrétneho uzla dokumentu XML pomocou funkcie xpath (). Hodnota cesty, „/ PRODUKTY / PRODUKT [@ category =” Monitor ”]“ prehľadá hodnoty všetkých podradených uzlov súboru produkt uzol, kde je hodnota atribútu kategórie Monitor. pre každý slučka slúži na tlač hodnôt ZNAČKA, MENO, a CENA uzly.
// Vytvorenie objektu na čítanie súboru XML$ xml = simplexml_load_file ('produkty.xml ');
// Vyhľadajte produkty, kde je hodnota atribútu çategory 'Monitor'
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
ozvena “
Zoznam značky, názvu a ceny produktu podľa kategórie (Monitor):
";ozvena “
Značka | názov | cena |
---|---|---|
$ produkt-> ZNAČKA | $ product-> NAME | $$ produkt-> CENA |
?>
Výkon:
Po spustení skriptu zo servera sa objaví nasledujúci výstup.
Použitie SimpleXMLElement trieda:
V tejto časti tohto tutoriálu sa ukazujú použitia funkcie xpath () vytvorením objektu triedy SimpleXMLElement.
Príklad-4: Použitie funkcie xpath () definovaním obsahu XML v premennej
Nasledujúci príklad ukazuje, ako čítať hodnoty uzlov dokumentu XML deklarované v premennej namiesto súboru. Obsah XML je uložený v priečinku $ xml_data premenná. „/ Customers / customer“ sa používa ako hodnota argumentu funkcie xpath () na čítanie všetkých hodnôt podradených uzlov súboru zákazník uzol. Ďalej, a pre každý slučka slúži na tlač hodnôt názov uzol. „/ Customers / customer [@ department = 'HR']“ sa používa ako hodnota argumentu inej funkcie xpath () na čítanie všetkých hodnôt podradených uzlov zákazníckeho uzla, kde hodnota oddelenie atribút je HR. Ďalšie, a pre každého slučka sa používa na tlač hodnôt súboru e-mail uzol.
$ xml_data = <<XML;
// Definujte objekt na čítanie údajov XML
$ xml = nový SimpleXMLElement ($ xml_data);
// Definujte cestu na čítanie všetkých údajov o zákazníkoch
$ customers = $ xml-> xpath ("/ customers / customer");
// Vytlačte mená zákazníkov
ozvena “
Zoznam mien zákazníkov:
";foreach ($ zákazníci ako $ zákazník)
echo "$ customer-> meno
";
// Definujte cestu k načítaniu všetkých údajov o zákazníkoch HR oddelenia
$ customers = $ xml-> xpath ("/ customers / customer [@ department = 'HR']");
// Vytlačte e-mail zákazníkov
ozvena “
E-mail zákazníka HR oddelenia:
";foreach ($ zákazníci ako $ zákazník)
echo "$ zákazník-> e-mail
";
?>
Výkon:
Po spustení skriptu zo servera sa objaví nasledujúci výstup.
Záver:
V tejto príručke sú vysvetlené dva rôzne spôsoby použitia funkcie xpath () na čítanie hodnôt uzlov dokumentu XML na základe konkrétnej cesty alebo cesty s podmienkou alebo cesty s hodnotou atribútu pomocou viacerých príkladov.