PHP - Función SimpleXMLElement :: xpath ()

Definición y uso

XML es un lenguaje de marcado para compartir los datos a través de la web, XML es legible tanto para humanos como para máquinas. La clase SimpleXMLElement representa un documento XML en PHP.

los SimpleXMLElement::xpath() La función acepta un valor strng como parámetro que representa un xpath, busca y recupera los hijos del nodo XML en la ruta dada.

Sintaxis

SimpleXMLElement::xpath($path);

Parámetros

No Señor Descripción de parámetros
1

path (Mandatory)

Este es un valor de cadena que representa un XPath.

Valores devueltos

Esta función devuelve una matriz de objetos de tipo SimpleXMLElement que representan los nodos en caso de éxito y FALSE en caso de fallo.

Versión PHP

Esta función se introdujo por primera vez en PHP Versión 5 y funciona en todas las versiones posteriores.

Ejemplo

El siguiente ejemplo demuestra el uso de la función SimpleXMLElement :: xpath ().

<html>
   <head>
      <body>
         <?php
            $xmlstr = "<?xml version='1.0' standalone='yes'?>
            <Tutorial>
               <Name>JavaFX</Name>
               <Pages>535</Pages>
               <Author>Krishna</Author>
               <Version>11</Version>
            </Tutorial>";
            $xml = new SimpleXMLElement($xmlstr);
            $node = $xml->xpath('/Tutorial/Author');
            print_r($node);	  
         ?>      
      </body>
   </head>   
</html>

Esto producirá el siguiente resultado:

Array ( [0] => SimpleXMLElement Object ( [0] => Krishna ) )

Ejemplo

A continuación se muestra otro ejemplo de esta función en la que intentamos cargar el contenido de un archivo XML y recuperar el contenido de una ruta específica:

data.xml

<?xml version="1.0" encoding="utf-8"?>
<Tutorials>
   <Tutorial>
      <Name>JavaFX</Name>
      <Pages>535</Pages>
      <Author>Krishna</Author>
      <Version>11</Version>
   </Tutorial>

   <Tutorial>
      <Name>CoffeeScript</Name>
      <Pages>235</Pages>
      <Author>Kasyap</Author>
      <Version>2.5.1</Version>
   </Tutorial>
   
   <Tutorial>
      <Name>OpenCV</Name>
      <Pages>150</Pages>
      <Author>Maruti</Author>
      <Version>3.0</Version>
   </Tutorial>
</Tutorials>

Sample.htm:

<html>
   <head>      
      <body>         
         <?php
            $doc = new DOMDocument;
            $xml = simplexml_load_file("data.xml");
            //file to SimpleXMLElement 
            $xml = simplexml_import_dom($xml);
		
            $node = $xml->xpath('/Tutorials/Tutorial/Name');
            print_r($node);
         ?>
      </body>
   </head>
</html>

Esto producirá el siguiente resultado:

Array ( 
   [0] => SimpleXMLElement Object ( [0] => JavaFX ) 
   [1] => SimpleXMLElement Object ( [0] => CoffeeScript ) 
   [2] => SimpleXMLElement Object ( [0] => OpenCV ) 
)