Uso di XPath in PHP

Uso di XPath in PHP
Il documento XML viene utilizzato per archiviare una piccola quantità di dati e talvolta è necessario leggere il particolare contenuto del documento XML in base al valore del percorso utilizzando lo script PHP. La funzione xpath () viene utilizzata per analizzare il contenuto di un documento XML. Questa funzione può essere utilizzata utilizzando simplexml_load_file () funzione o creando l'oggetto di Simplexmlelement classe. La funzione XPath () può essere utilizzata per leggere i valori di nodo XML particolari mostrati in questo tutorial.

Sintassi:

La sintassi della funzione xpath () è riportata di seguito.

Array XPath (String $ Path)

Questa funzione ha un argomento che prende un valore del percorso e se il percorso esiste in qualsiasi nodo del documento XML, il valore del nodo verrà restituito come array. Diversi usi di questa funzione hanno spiegato nella parte successiva di questo tutorial.

Crea documento XML:

Crea un file XML chiamato prodotti.XML con i seguenti contenuti sulla posizione in cui verrà creato il file PHP per analizzare questo file.




MN-56345
Dell
Monitor Dell da 15 pollici
700


HD-34278
SAMSUNG
1 TB Samsung HDD
520


MS-67457
Logitech
Mouse wireless logitech
100


MN-76453
HP
Monitor da 14 pollici HP
750

Uso di simplexml_load_file () funzione:

La funzione xpath () con l'oggetto creato dalla funzione simplexml_load_file () ha mostrato in questa parte di questo tutorial.

Esempio-1: leggi i valori particolari del nodo XML

L'esempio seguente mostra come leggere il contenuto dei valori di nodo particolari dal documento XML definendo il percorso della funzione XPath (). La variabile oggetto, $ XML viene creato per leggere i valori specifici del nodo di prodotti.XML file. '/Prodotti/prodotto/marchio' viene utilizzato in xpath () per leggere tutti i valori del nodo del marchio. '/Prodotti/prodotto' viene utilizzato in xpath () per leggere tutti i valori del nodo figlio di PRODOTTO nodi. per ciascuno Loop viene utilizzato per stampare i valori di NOME E PREZZO nodi.

// Crea oggetto per leggere il file XML
$ xml = simplexml_load_file ('prodotti.xml ');
// Cerca tutti i valori del nodo del marchio
$ Brand = $ XML-> XPath ('/Product/Product/Brand');
// Stampa i valori dell'array
eco "

L'elenco dei marchi è:

";
foreach ($ marchio come $ name)
echo "$ nome
";

// Cerca tutti i valori del nodo del prodotto
$ prodotti = $ XML-> xPath ('/Product/Product');
eco "

L'elenco del nome e del prezzo del prodotto:

";
eco "";
eco "";
// Stampa i valori dell'array
foreach ($ prodotti come $ Product)
eco "";

eco "
NomePrezzo
$ Product-> Nome Prodotto $$-> Prezzo
";
?>

Produzione:

Verrà visualizzato il seguente output dopo l'esecuzione dello script dal server.

Esempio-2: leggi i valori di nodo XML particolari in base alla condizione

L'esempio seguente mostra come leggere i valori particolari del nodo in base alla condizione usando xpath (). Il valore del percorso, '/Prodotti/prodotto [prezzo> 600]', Cercherà i valori di tutti i nodi figlio di PRODOTTO nodo in cui il valore di PREZZO Il nodo è più di 600. per ciascuno Loop viene utilizzato per stampare i valori di NOME E PREZZO nodi.

// Crea oggetto per leggere il file XML
$ xml = simplexml_load_file ('prodotti.xml ');
// Cerca i prodotti in cui il valore del prezzo è superiore a 600
$ prodotti = $ xml-> xpath ('/prodotti/prodotto [prezzo> 600]');
eco "

L'elenco del nome del prodotto e del prezzo in cui il prezzo è superiore a 600:

";
eco "";
eco "";
// Stampa i valori dell'array
foreach ($ prodotti come $ Product)
eco "";

eco "
NomePrezzo
$ Product-> Nome Prodotto $$-> Prezzo
";
?>

Produzione:

Verrà visualizzato il seguente output dopo l'esecuzione dello script dal server.

Esempio-3: leggi i valori di nodo XML particolari in base all'attributo

L'esempio seguente mostra come leggere i valori particolari del nodo in base ai valori degli attributi del nodo specifico del documento XML utilizzando la funzione XPath (). Il valore del percorso, '/Products/Product [@Category = ”Monitor”]' Cercherà i valori di tutti i nodi figlio di il prodotto nodo, dove è il valore dell'attributo della categoria Tenere sotto controllo. per ciascuno Loop viene utilizzato per stampare i valori di MARCHIO, E PREZZO nodi.

// Crea oggetto per leggere il file XML
$ xml = simplexml_load_file ('prodotti.xml ');
// Cerca i prodotti in cui il valore dell'attributo çategory è "monitorare"
$ prodotti = $ XML-> xPath ('/Product/Product [@Category = "Monitor"]');
eco "

L'elenco del marchio del prodotto, nome e prezzo in base alla categoria (monitor):

";
eco "";
eco "";
// Stampa i valori dell'array
foreach ($ prodotti come $ Product)
eco "";

eco "
MarcaNomePrezzo
$ Product-> Brand$ Product-> Nome Prodotto $$-> Prezzo
";
?>

Produzione:

Verrà visualizzato il seguente output dopo l'esecuzione dello script dal server.

Uso di Simplexmlelement classe:

Gli usi della funzione XPath () creando l'oggetto Classe SimplexMlelement ha mostrato in questa parte di questo tutorial.

Esempio-4: uso di xpath () definendo il contenuto XML in una variabile

L'esempio seguente mostra come leggere i valori del nodo del documento XML dichiarato in una variabile anziché nel file. Il contenuto XML è archiviato in $ xml_data variabile. "/Clienti/clienti" è usato come valore dell'argomento della funzione xpath () per leggere tutti i valori dei nodi figlio del cliente nodo. Successivamente, a per ciascuno Loop viene utilizzato per stampare i valori di il nome nodo. "/Clienti/Customer [@Dipartimento = 'HR']" viene utilizzato come valore dell'argomento di un'altra funzione xpath () per leggere tutti i valori dei nodi figlio del nodo del cliente in cui il valore di Dipartimento L'attributo è Hr. Prossimo, a per ciascuno Loop viene utilizzato per stampare i valori del e-mail nodo.

$ xml_data = <<

MD. Mahbub
[email protected]


Farhana Zaman
[email protected]


XML;
// Definisci oggetto per leggere i dati XML
$ xml = new SimplexMlelement ($ xml_data);
// Definisci il percorso per leggere tutti i dati dei clienti
$ clienti = $ xml-> xpath ("/clienti/clienti");
// Stampa il nome dei clienti
eco "

L'elenco dei nomi dei clienti:

";
foreach ($ clienti come $ customer)
Echo "$ Cliente-> Nome
";

// Definisci il percorso per leggere tutti i dati dei clienti del dipartimento delle risorse umane
$ clienti = $ xml-> xPath ("/clienti/customer [@dipartiment = 'hr']");
// Stampa l'e -mail dei clienti
eco "

L'e -mail del cliente del cliente:

";
foreach ($ clienti come $ customer)
Echo "$ Customer-> Email
";

?>

Produzione:

Verrà visualizzato il seguente output dopo l'esecuzione dello script dal server.

Conclusione:

Due diversi modi di utilizzare la funzione XPath () per leggere i valori del nodo del documento XML in base al percorso specifico o al percorso con la condizione o il percorso con valore attributo sono stati spiegati in questo tutorial utilizzando più esempi.