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.
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 "
Nombre | Precio |
---|---|
$ 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 "
Nombre | Precio |
---|---|
$ 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 "
Marca | Nombre | Precio |
---|---|---|
$ 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 = <<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.