Sintassi:
La sintassi della funzione xpath() è riportata di seguito.
array xpath(string $percorso)Questa funzione ha un argomento che accetta un valore di percorso e se il percorso esiste in qualsiasi nodo del documento XML, il valore del nodo verrà restituito come un array. Diversi usi di questa funzione sono stati spiegati nella parte successiva di questo tutorial.
Crea documento XML:
Crea un file XML chiamato prodotti.xml con il seguente contenuto sulla posizione in cui verrà creato il file PHP per analizzare questo file.
Uso di simplexml_load_file() funzione:
La funzione xpath() con l'oggetto creato dalla funzione simplexml_load_file() è mostrata in questa parte di questo tutorial.
Esempio 1: leggere i particolari valori del nodo XML
L'esempio seguente mostra come leggere il contenuto dei particolari valori del nodo dal documento XML definendo il percorso della funzione xpath()(). La variabile oggetto, $xml è creato per leggere i valori del nodo specifico del prodotti.xml file. '/PRODOTTI/PRODOTTO/MARCA' viene utilizzato in xpath() per leggere tutti i valori del nodo BRAND. '/PRODOTTI/PRODOTTO' è usato 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 dei nodi BRAND
$marca = $xml->xpath('/PRODOTTI/PRODOTTO/MARCA');
//Stampa i valori dell'array
eco "
L'elenco dei marchi sono:
";foreach($marca come $nome)
echo "$nome
";
//Cerca tutti i valori del nodo PRODUCT
$prodotti = $xml->xpath('/PRODOTTI/PRODOTTO');
eco "
L'elenco del nome del prodotto e del prezzo:
";eco "
Nome | Prezzo |
---|---|
$prodotto->NOME | $$prodotto->PREZZO |
?>
Produzione:
Il seguente output apparirà dopo aver eseguito lo script dal server.
Esempio 2: leggere i particolari valori del nodo XML in base alla condizione
L'esempio seguente mostra come leggere i particolari valori del nodo in base alla condizione utilizzando la funzione xpath(). Il valore del percorso, '/PRODOTTI/PRODOTTO[PREZZO > 600]', cercherà i valori di tutti i nodi figli di PRODOTTO nodo dove 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
$products = $xml->xpath('/PRODUCTS/PRODUCT[PREZZO > 600]');
eco "
L'elenco del nome del prodotto e del prezzo in cui il prezzo è superiore a 600:
";eco "
Nome | Prezzo |
---|---|
$prodotto->NOME | $$prodotto->PREZZO |
?>
Produzione:
Il seguente output apparirà dopo aver eseguito lo script dal server.
Esempio 3: leggere i particolari valori del nodo XML in base all'attributo
L'esempio seguente mostra come leggere i valori del nodo particolari in base ai valori degli attributi del nodo specifico del documento XML utilizzando la funzione xpath(). Il valore del percorso, '/PRODUCTS/PRODUCT[@category=”Monitoraggio”]' cercherà i valori di tutti i nodi figli di il prodotto nodo, dove il valore dell'attributo di 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 è "Monitoraggio"
$products = $xml->xpath('/PRODUCTS/PRODUCT[@category="Monitor"]');
eco "
L'elenco di marca, nome e prezzo del prodotto in base alla categoria (monitor):
";eco "
Marca | Nome | Prezzo |
---|---|---|
$prodotto->MARCA | $prodotto->NOME | $$prodotto->PREZZO |
?>
Produzione:
Il seguente output apparirà dopo aver eseguito lo script dal server.
Uso di SimpleXMLElement classe:
Gli usi della funzione xpath() creando l'oggetto classe SimpleXMLElement sono mostrati 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 dichiarati in una variabile invece che nel file. Il contenuto XML è memorizzato nel $xml_data variabile. “/clienti/cliente” è usato come valore dell'argomento della funzione xpath() per leggere tutti i valori dei nodi figli della cliente nodo. Successivamente, a per ciascuno loop viene utilizzato per stampare i valori di il nome nodo. “/customers/customer[@department='HR']” viene utilizzato come valore dell'argomento di un'altra funzione xpath() per leggere tutti i valori dei nodi figlio del nodo cliente in cui il valore di Dipartimento l'attributo è risorse umane. Il prossimo, una per ciascuno loop viene utilizzato per stampare i valori di e-mail nodo.
$xml_data = <<XML;
//Definisci l'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/cliente");
//Stampa il nome dei clienti
eco "
L'elenco dei nomi dei clienti:
";foreach($clienti come $cliente)
echo "$cliente->nome
";
//Definisci il percorso per leggere tutti i dati dei clienti del dipartimento delle risorse umane
$clienti = $xml->xpath("/clienti/cliente[@reparto='HR']");
//Stampa l'e-mail dei clienti
eco "
L'e-mail del cliente del dipartimento delle risorse umane:
";foreach($clienti come $cliente)
echo "$cliente->email
";
?>
Produzione:
Il seguente output apparirà dopo aver eseguito lo script dal server.
Conclusione:
In questo tutorial sono stati spiegati due diversi modi di usare la funzione xpath() per leggere i valori del nodo del documento XML in base al percorso specifico o al percorso con la condizione o al percorso con il valore dell'attributo utilizzando più esempi.