Los últimos tutoriales de desarrollo web
 

PHP xml_parse() Function


<Referencia completa de PHP XML

Definición y Uso

El xml_parse() Esta función analiza un documento XML.

Esta función devuelve TRUE en caso de éxito, en caso de fallo.

Sintaxis

xml_parse(parser,xml,end)

Parámetro Descripción
parser Necesario. Especifica analizador XML para utilizar
xml Necesario. Especifica los datos XML para analizar
end Opcional. Si este parámetro es TRUE, los datos en el "xml" parámetro es el último pedazo de información envíado en este análisis.

Note: errores de entidad se reportaron al final del análisis. Y sólo se mostrará si el "end" parámetro es TRUE


Notas y sugerencias

Tip: Para crear un analizador XML, utilice el xml_parser_create() función.


Ejemplo 1

archivo XML

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Código PHP

<?php
$parser=xml_parser_create();

function char($parser,$data)
  {
  echo $data;
  }

xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");

while ($data=fread($fp,4096))
  {
  xml_parse($parser,$data,feof($fp)) or
  die (sprintf("XML Error: %s at line %d",
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }

xml_parser_free($parser);
?>

La salida del código anterior será:

Tove Jani Reminder Don't forget me this weekend!

Ejemplo 2

Utilizando el mismo archivo XML, pero que muestra los datos XML de otra manera:

<?php
$parser=xml_parser_create();

function start($parser,$element_name,$element_attrs)
  {
  switch($element_name)
    {
    case "NOTE":
    echo "-- Note --<br />";
    break;
    case "TO":
    echo "To: ";
    break;
    case "FROM":
    echo "From: ";
    break;
    case "HEADING":
    echo "Heading: ";
    break;
    case "BODY":
    echo "Message: ";
    }
  }

function stop($parser,$element_name)
  {
  echo "<br />";
  }

function char($parser,$data)
  {
  echo $data;
  }

xml_set_element_handler($parser,"start","stop");
xml_set_character_data_handler($parser,"char");
$fp=fopen("test.xml","r");

while ($data=fread($fp,4096))
  {
  xml_parse($parser,$data,feof($fp)) or
  die (sprintf("XML Error: %s at line %d",
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }

xml_parser_free($parser);
?>

La salida del código anterior será:

-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!

<Referencia completa de PHP XML