Syntax:
Syntaxe funkce xpath () je uvedena níže.
pole xpath (řetězec $ cesta)Tato funkce má jeden argument, který přebírá hodnotu cesty, a pokud cesta existuje v jakémkoli uzlu dokumentu XML, bude hodnota uzlu vrácena jako pole. V další části tohoto tutoriálu jsou vysvětlena různá použití této funkce.
Vytvořit dokument XML:
Vytvořte soubor XML s názvem produkty.xml s následujícím obsahem v umístění, kde bude vytvořen soubor PHP, aby tento soubor analyzoval.
Použití simplexml_load_file () funkce:
V této části tohoto tutoriálu se ukázala funkce xpath () s objektem vytvořeným funkcí simplexml_load_file ().
Příklad 1: Přečtěte si konkrétní hodnoty uzlů XML
Následující příklad ukazuje, jak číst obsah hodnot konkrétního uzlu z dokumentu XML definováním cesty funkce xpath (). Proměnná objektu, $ xml je vytvořen ke čtení hodnot konkrétního uzlu souboru produkty.xml soubor. „/ PRODUKTY / PRODUKT / ZNAČKA“ se používá v xpath () ke čtení všech hodnot uzlu BRAND. „/ PRODUKTY / PRODUKT“ se používá v xpath () ke čtení všech hodnot podřízeného uzlu PRODUKT uzly. pro každého smyčka se používá k tisku hodnot NÁZEV a CENA uzly.
// Vytvořit objekt pro čtení souboru XML$ xml = simplexml_load_file ('produkty.xml ');
// Prohledat všechny hodnoty uzlu BRAND
$ brand = $ xml-> xpath ('/ PRODUCTS / PRODUCT / BRAND');
// Vytiskne hodnoty pole
ozvěna "
Seznam značek je:
";foreach (značka $ jako $ name)
ozvěna "$ jméno
";
// Prohledat všechny hodnoty uzlu PRODUCT
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT');
ozvěna "
Seznam názvu produktu a ceny:
";ozvěna "
název | Cena |
---|---|
$ product-> NAME | $$ produkt-> CENA |
?>
Výstup:
Po spuštění skriptu ze serveru se zobrazí následující výstup.
Příklad 2: Přečíst konkrétní hodnoty uzlu XML na základě podmínky
Následující příklad ukazuje, jak číst konkrétní hodnoty uzlu na základě podmínky pomocí funkce xpath (). Hodnota cesty, „/ PRODUKTY / PRODUKT [CENA> 600]“, prohledá hodnoty všech podřízených uzlů PRODUKT uzel, kde je hodnota CENA uzel je více než 600. pro každého smyčka se používá k tisku hodnot NÁZEV a CENA uzly.
// Vytvořit objekt pro čtení souboru XML$ xml = simplexml_load_file ('produkty.xml ');
// Hledejte produkty, u nichž je cena vyšší než 600
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT [PRICE> 600]');
ozvěna "
Seznam názvů a cen produktů, kde je cena vyšší než 600:
";ozvěna "
název | Cena |
---|---|
$ product-> NAME | $$ produkt-> CENA |
?>
Výstup:
Po spuštění skriptu ze serveru se zobrazí následující výstup.
Příklad 3: Přečtěte si konkrétní hodnoty uzlu XML na základě atributu
Následující příklad ukazuje, jak číst konkrétní hodnoty uzlu na základě hodnot atributů konkrétního uzlu dokumentu XML pomocí funkce xpath (). Hodnota cesty, „/ PRODUKTY / PRODUKT [@ category =” Monitor ”]“ prohledá hodnoty všech podřízených uzlů produkt uzel, kde je hodnota atributu kategorie Monitor. pro každého smyčka se používá k tisku hodnot JMÉNO ZNAČKY, a CENA uzly.
// Vytvořit objekt pro čtení souboru XML$ xml = simplexml_load_file ('produkty.xml ');
// Hledejte produkty, kde je hodnota atributu çategory 'Monitor'
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
ozvěna "
Seznam značky, názvu a ceny produktu podle kategorie (Monitor):
";ozvěna "
Značka | název | Cena |
---|---|---|
$ produkt-> ZNAČKA | $ product-> NAME | $$ produkt-> CENA |
?>
Výstup:
Po spuštění skriptu ze serveru se zobrazí následující výstup.
Použití SimpleXMLElement třída:
Použití funkce xpath () vytvořením objektu třídy SimpleXMLElement se ukázalo v této části tohoto tutoriálu.
Příklad 4: Použití funkce xpath () definováním obsahu XML v proměnné
Následující příklad ukazuje, jak číst hodnoty uzlu dokumentu XML deklarované v proměnné namísto souboru. Obsah XML je uložen v $ xml_data proměnná. „/ Customers / customer“ se používá jako hodnota argumentu funkce xpath () ke čtení všech hodnot podřízených uzlů zákazník uzel. Dále, a pro každého smyčka se používá k tisku hodnot název uzel. „/ Customers / customer [@ department = 'HR']“ se používá jako hodnota argumentu jiné funkce xpath () ke čtení všech hodnot podřízených uzlů zákaznického uzlu, kde je hodnota oddělení atribut je HR. další, a pro každého smyčka se používá k tisku hodnot souboru e-mailem uzel.
$ xml_data = <<XML;
// Definování objektu pro čtení dat XML
$ xml = nový SimpleXMLElement ($ xml_data);
// Definujte cestu ke čtení všech údajů o zákaznících
$ customers = $ xml-> xpath ("/ customers / customer");
// Vytiskněte jména zákazníků
ozvěna "
Seznam jmen zákazníků:
";foreach ($ zákazníci jako $ zákazník)
echo "$ customer-> name
";
// Definujte cestu ke čtení všech zákaznických dat HR oddělení
$ customers = $ xml-> xpath ("/ customers / customer [@ department = 'HR']");
// Tisk e-mailů zákazníků
ozvěna "
E-mail zákazníka HR oddělení:
";foreach ($ zákazníci jako $ zákazník)
echo "$ customer-> email
";
?>
Výstup:
Po spuštění skriptu ze serveru se zobrazí následující výstup.
Závěr:
V tomto kurzu jsou vysvětleny dva různé způsoby použití funkce xpath () ke čtení hodnot uzlu dokumentu XML na základě konkrétní cesty nebo cesty s podmínkou nebo cesty s hodnotou atributu pomocí několika příkladů.