PHP - Función simplexml_load_file ()

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. El analizador XML simple se utiliza para analizar el nombre, los atributos y el contenido textual.

los simplexml_load_file() acepta la ruta absoluta de un archivo XML como parámetro, lo convierte en un objeto de la clase SimpleXMLElement y lo devuelve.

Sintaxis

simplexml_load_file($filename, [$class_name, $options, $ns, $is_prefix]);

Parámetros

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

filename (Mandatory)

Este es un valor de cadena que representa el nombre / ruta de un archivo XML.

2

time(Optional)

Este es un valor de cadena para representar el nombre de la clase (subclase de SimpleXMLElement).

Si pasa este valor, la cadena XML dada se devuelve como el objeto de la clase especificada.

3

optional(Optional)

Este es un valor entero que se usa para especificar los parámetros adicionales de Libxml.

4

ns(Optional)

Este es un valor de cadena que representa el prefijo del espacio de nombres o URI.

5

Is_prefix(Optional)

Este es un valor booleano que representa si la opción anterior es un prefijo o un URI.

Valores devueltos

Esta función devuelve un objeto de la clase SimpleXMLElement en caso de éxito y devuelve el valor booleano FALSE en caso de error.

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 simplexml_load_file ().

data.xml:

<Tutorial>
   <Name>JavaFX</Name>
   <Pages>535</Pages>
   <Author>Krishna</Author>
   <Version>11</Version>
</Tutorial>

sample.html:

<html>
   <head>      
      <body>         
         <?php
            $xml = simplexml_load_file("data.xml");
            print("<br>");
            print_r($xml);
         ?>
      </body>
   </head>
</html>

Esto producirá el siguiente resultado:

SimpleXMLElement Object ( 
   [Name] => JavaFX [Pages] => 535 
   [Author] => Krishna [Version] => 11 
)

Ejemplo

En el siguiente ejemplo, estamos intentando cargar un archivo XML con varios registros y recuperar valores de él:

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>
</Tutorials>

sample.html

<html>
   <head>      
      <body>         
         <?php
            $xml = simplexml_load_file("mydata.xml");
            print("<br>");
            foreach($xml->children() as $tut) {
               print($tut->Name ."<br>");
               print($tut->Pages ."<br>");
               print($tut->Author ."<br>");
               print($tut->Version ."<br>");
               print("<br>");
            }
         ?>
      </body>
   </head>
</html>

Esto producirá el siguiente resultado:

JavaFX
535
Krishna
11

CoffeeScript
235
Kasyap
2.5.1

Ejemplo

El siguiente ejemplo demuestra el uso de este método con opciones:

<Tutorial>
   <Name>JavaFX</Name>
   <Pages>535</Pages>
   <Author>Krishna</Author>
   <Version>11</Version>
</Tutorial>

sample.html

<html>
   <head>      
      <body>         
         <?php
            $xml = simplexml_load_file("data.xml", "SimpleXMLElement", LIBXML_BIGLINES, FALSE);
            print("<br>");
            print($xml->Name ."<br>");
            print($xml->Pages ."<br>");
            print($xml->Author ."<br>");
            print($xml->Version);
         ?>
      </body>
   </head>
</html>

Esto producirá el siguiente resultado:

JavaFX
535
Krishna
11

Ejemplo

Supongamos que tenemos un archivo con el nombre sample.xml como se muestra a continuación:

data.xml

<note>
   <to>Gopal</to>
   <from>CEO</from>
   <heading>Reminder</heading>
   <body>Don't forget to send a file to me</body>
</note>

El siguiente ejemplo carga el archivo anterior:

<?php
   $xml = simplexml_load_file("sample.xml");
   print_r($xml);
?>

Esto producirá el siguiente resultado:

SimpleXMLElement Object (
   [to] => gopal [from] => CEO 
   [heading] => Reminder [body] => Don't forget to send a file to me 
)