php

Použití xpath () v PHP

Použití xpath () v PHP
Dokument XML se používá k ukládání malého množství dat a někdy je nutné číst konkrétní obsah dokumentu XML na základě hodnoty cesty pomocí skriptu PHP. Funkce xpath () se používá k analýze obsahu dokumentu XML. Tuto funkci lze použít pomocí simplexml_load_file () funkce nebo vytvořením objektu SimpleXMLElement třída. Funkci xpath () lze použít ke čtení konkrétních hodnot uzlů XML zobrazených v tomto kurzu.

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.




MN-56345
DELL
15palcový monitor Dell
700


HD-34278
SAMSUNG
1 TB pevný disk Samsung
520


MS-67457
LOGITECH
Bezdrátová myš Logitech
100


MN-76453
HP
14palcový monitor HP
750

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 "";
ozvěna "";
// Vytiskne hodnoty pole
foreach ($ products as $ product)
ozvěna "";

ozvěna "
názevCena
$ 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 "";
ozvěna "";
// Vytiskne hodnoty pole
foreach ($ products as $ product)
ozvěna "";

ozvěna "
názevCena
$ 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 "";
ozvěna "";
// Vytiskne hodnoty pole
foreach ($ products as $ product)
ozvěna "";

ozvěna "
ZnačkanázevCena
$ 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 = <<

Md. Mahbub
[chráněno e-mailem]


Farhana Zaman
[chráněno e-mailem]


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ů.

Hry Jak nainstalovat a hrát Doom na Linuxu
Jak nainstalovat a hrát Doom na Linuxu
Úvod do Doom Série Doom vznikla v 90. letech po vydání původního Doomu. Byl to okamžitý hit a od té doby herní série získala řadu ocenění a původní Do...
Hry Vulkan pro uživatele Linuxu
Vulkan pro uživatele Linuxu
S každou novou generací grafických karet vidíme, že vývojáři her posouvají hranice grafické věrnosti a přibližují se k fotorealismu. Ale navzdory vešk...
Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvoření vlastní simulace dopravy může být zábavné, uvolňující a mimořádně lákavé. Proto se musíte ujistit, že vyzkoušíte co nejvíce her, abyste našl...