php

Uso de xpath () en PHP

Uso de xpath () en PHP
El documento XML se utiliza para almacenar una pequeña cantidad de datos y, a veces, es necesario leer el contenido particular del documento XML en función del valor de la ruta mediante un script PHP. La función xpath () se usa para analizar el contenido de un documento XML. Esta función se puede utilizar utilizando simplexml_load_file () función o creando el objeto de SimpleXMLElement clase. La función xpath () se puede utilizar para leer los valores de nodo XML particulares que se muestran en este tutorial.

Sintaxis:

La sintaxis de la función xpath () se da a continuación.

matriz xpath (cadena $ ruta)

Esta función tiene un argumento que toma un valor de ruta, y si la ruta existe en cualquier nodo del documento XML, el valor del nodo se devolverá como una matriz. Los diferentes usos de esta función se han explicado en la siguiente parte de este tutorial.

Crear documento XML:

Crea un archivo XML llamado productos.xml con el siguiente contenido en la ubicación donde se creará el archivo PHP para analizar este archivo.




MN-56345
DELL
Monitor Dell de 15 pulgadas
700


HD-34278
SAMSUNG
Disco duro Samsung de 1 TB
520


MS-67457
LOGITECH
Ratón inalámbrico Logitech
100


MN-76453
HP
Monitor HP de 14 pulgadas
750

Uso de simplexml_load_file () función:

La función xpath () con el objeto creado por la función simplexml_load_file () se muestra en esta parte de este tutorial.

Ejemplo 1: leer los valores de nodo XML particulares

El siguiente ejemplo muestra cómo leer el contenido de los valores de nodo particulares del documento XML definiendo la ruta de la función xpath (). La variable de objeto, $ xml se crea para leer los valores de nodo específicos de la productos.xml expediente. '/ PRODUCTOS / PRODUCTO / MARCA' se usa en xpath () para leer todos los valores del nodo BRAND. '/ PRODUCTOS / PRODUCTO' se utiliza en xpath () para leer todos los valores de los nodos secundarios de PRODUCTO nodos. para cada bucle se utiliza para imprimir los valores de NOMBRE y PRECIO nodos.

// Crear objeto para leer el archivo XML
$ xml = simplexml_load_file ('productos.xml ');
// Buscar todos los valores del nodo BRAND
$ marca = $ xml-> xpath ('/ PRODUCTOS / PRODUCTO / MARCA');
// Imprime los valores de la matriz
eco "

La lista de marcas son:

";
foreach ($ marca como $ nombre)
echo "$ nombre
";

// Buscar todos los valores del nodo PRODUCT
$ productos = $ xml-> xpath ('/ PRODUCTOS / PRODUCTO');
eco "

La lista de nombre y precio del producto:

";
eco "";
eco "";
// Imprime los valores de la matriz
foreach ($ productos como $ producto)
eco "";

eco "
NombrePrecio
$ producto-> NOMBRE $$ producto-> PRECIO
";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor.

Ejemplo 2: leer los valores de nodo XML particulares según la condición

El siguiente ejemplo muestra cómo leer los valores de los nodos particulares basados ​​en la condición usando la función xpath (). El valor de la ruta, '/ PRODUCTOS / PRODUCTO [PRECIO> 600]', buscará los valores de todos los nodos secundarios de PRODUCTO nodo donde el valor de PRECIO nodo es más de 600. para cada bucle se utiliza para imprimir los valores de NOMBRE y PRECIO nodos.

// Crear objeto para leer el archivo XML
$ xml = simplexml_load_file ('productos.xml ');
// Busque los productos donde el valor del precio sea superior a 600
$ productos = $ xml-> xpath ('/ PRODUCTOS / PRODUCTO [PRECIO> 600]');
eco "

La lista de nombre y precio del producto donde el precio es más de 600:

";
eco "";
eco "";
// Imprime los valores de la matriz
foreach ($ productos como $ producto)
eco "";

eco "
NombrePrecio
$ producto-> NOMBRE $$ producto-> PRECIO
";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor.

Ejemplo 3: leer los valores de nodo XML particulares según el atributo

El siguiente ejemplo muestra cómo leer los valores de los nodos particulares basados ​​en los valores de los atributos del nodo específico del documento XML usando la función xpath (). El valor de la ruta, '/ PRODUCTOS / PRODUCTO [@ categoría = ”Monitor”]' buscará los valores de todos los nodos secundarios de el producto nodo, donde el valor del atributo de categoría es Monitor. para cada bucle se utiliza para imprimir los valores de NOMBRE DE LA MARCA, y PRECIO nodos.

// Crear objeto para leer el archivo XML
$ xml = simplexml_load_file ('productos.xml ');
// Busque los productos donde el valor del atributo çategory es 'Monitor'
$ productos = $ xml-> xpath ('/ PRODUCTOS / PRODUCTO [@ categoría = "Monitor"]');
eco "

La lista de marca, nombre y precio del producto según la categoría (Monitor):

";
eco "";
eco "";
// Imprime los valores de la matriz
foreach ($ productos como $ producto)
eco "";

eco "
MarcaNombrePrecio
$ producto-> MARCA$ producto-> NOMBRE $$ producto-> PRECIO
";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor.

Uso de SimpleXMLElement clase:

Los usos de la función xpath () al crear el objeto de clase SimpleXMLElement se muestran en esta parte de este tutorial.

Ejemplo 4: uso de xpath () definiendo contenido XML en una variable

El siguiente ejemplo muestra cómo leer los valores de nodo del documento XML declarados en una variable en lugar del archivo. El contenido XML se almacena en el $ xml_data variable. "/ Clientes / cliente" se utiliza como valor de argumento de la función xpath () para leer todos los valores de los nodos secundarios de la cliente nodo. A continuación, un para cada bucle se utiliza para imprimir los valores de el nombre nodo. "/ Clientes / cliente [@ departamento = 'RRHH']" se utiliza como el valor del argumento de otra función xpath () para leer todos los valores de los nodos secundarios del nodo cliente donde el valor de Departamento atributo es HORA. próximo, una para cada bucle se utiliza para imprimir los valores de la Email nodo.

$ xml_data = <<

Maryland. Mahbub
[correo electrónico protegido]


Farhana Zaman
[correo electrónico protegido]


XML;
// Definir objeto para leer los datos XML
$ xml = nuevo SimpleXMLElement ($ xml_data);
// Definir la ruta para leer todos los datos de los clientes
$ clientes = $ xml-> xpath ("/ clientes / cliente");
// Imprime el nombre de los clientes
eco "

La lista de nombres de clientes:

";
foreach ($ clientes como $ cliente)
echo "$ cliente-> nombre
";

// Definir la ruta para leer todos los datos de los clientes del departamento de recursos humanos
$ clientes = $ xml-> xpath ("/ clientes / cliente [@ departamento = 'RRHH']");
// Imprime el correo electrónico de los clientes
eco "

El correo electrónico del cliente del departamento de recursos humanos:

";
foreach ($ clientes como $ cliente)
echo "$ cliente-> correo electrónico
";

?>

Producción:

La siguiente salida aparecerá después de ejecutar el script desde el servidor.

Conclusión:

En este tutorial se han explicado dos formas diferentes de usar la función xpath () para leer los valores de nodo del documento XML según la ruta específica o la ruta con la condición o la ruta con el valor del atributo utilizando varios ejemplos.

Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...
Instale el último juego de estrategia de OpenRA en Ubuntu Linux
OpenRA es un motor de juego de estrategia en tiempo real libre / gratuito que recrea los primeros juegos de Westwood como el clásico Command & Conquer...
Instale el último emulador de Dolphin para Gamecube y Wii en Linux
Dolphin Emulator te permite jugar los juegos de Gamecube y Wii que elijas en computadoras personales con Linux (PC). Al ser un emulador de juegos de ...