Foros del Web » Programando para Internet » PHP »

Recoger error de domxml_open_file()

Estas en el tema de Recoger error de domxml_open_file() en el foro de PHP en Foros del Web. Buenas compañeros, Tengo un problema con la función domxml_open_file(), quiero que me recoja el error para después yo poder escribir el mensaje por pantalla, pero ...
  #1 (permalink)  
Antiguo 19/10/2009, 06:41
Avatar de cubic  
Fecha de Ingreso: febrero-2007
Mensajes: 51
Antigüedad: 17 años, 2 meses
Puntos: 1
Recoger error de domxml_open_file()

Buenas compañeros,

Tengo un problema con la función domxml_open_file(), quiero que me recoja el error para después yo poder escribir el mensaje por pantalla, pero lo que sucede es que menda un error del tipo:
Código Error:
Ver original
  1. domxml_open_file(): Failed to parse QName 'ETIQUETA_INCORRECTA'

Y todo lo que va después del open no se muestra.

Yo a la función la llamo enviándole estos parámetros:

Código PHP:
$domxml domxml_open_file('test.xml',DOMXML_LOAD_PARSING,$error); 
Y intento recoger el error de distintas formas:

Código PHP:
$domxml domxml_open_file('test.xml',DOMXML_LOAD_PARSING,$error);
    if (
$error){
      echo 
$error."  Error while parsing file.";
      exit;
    }else{
      echo 
"Correct parsing of file.";
    } 
Código PHP:
    if (!$domxml domxml_open_file('test.xml'DOMXML_LOAD_PARSING$error)) {
      echo 
$error."  Error while parsing file.";
      exit;
    } 
Código PHP:
$domxml domxml_open_file($filename,DOMXML_LOAD_PARSING,$error) or die("Error while parsing file."); 
Código PHP:
    if (!$domxml domxml_open_file($filename)) {
      
trigger_error("Error while parsing file."E_USER_ERROR);
    } 
Código PHP:
if (!$domxml domxml_open_file($filename,DOMXML_LOAD_PARSING,$error)) {
    echo 
"XML parse error\n";
    foreach (
$error as $errorline) {
    echo 
$errorline['errormessage']."<br />\n";
    echo 
"Node  : ".$errorline['nodename']."<br />\n";
    echo 
"Line  : ".$errorline['line']."<br />\n";
    echo 
"Column: ".$errorline['col']."<br />\n";
    }

Me parece que lo hago bien siguiendo la norma de: es.php.net/manual/en/function.domxml-open-file.php

También e probado con:
Código PHP:
$domxml domxml_open_file($filename,DOMXML_LOAD_PARSING,$error);
// Show error.
if(!$domxml) {
    
// Assign each line to array.
    
$arXML explode("\n"$xml);

    echo 
"<pre>";
           
    foreach (
$error as $errorline) {
        echo 
$errorline['errormessage'].
        
"Node  : ".$errorline['nodename']."\n".
        
"Line  : ".$errorline['line']."\n".
        
"Column: ".$errorline['col']."\n";

        
// Locate actual line number.
        
$arErrorMessage explode(' line '$errorline['errormessage']);
        
$arErrorMessage explode(' '$arErrorMessage[1]);
        
$errorLineNumber $arErrorMessage[0];
       
        
// Show +/- 10 lines around error.
        
$minErrorLineNumber max(0$errorLineNumber-10);
        
$maxErrorLineNumber min(sizeof($arXML), $errorLineNumber+10);
        echo 
"XML snip (linies: ".$minErrorLineNumber." to ".$maxErrorLineNumber."):\n";
        for(
$n $minErrorLineNumber$n $maxErrorLineNumber$n++)
            if(
$n == $errorLineNumber)
                echo 
"<B>".htmlentities($arXML[$n])."</B>\n";
            else
                echo 
htmlentities($arXML[$n])."\n";
        echo 
"\n\n";
    }
    echo 
"</pre>";

Perdonar yo que tenia una función propia que me recoge los errores de php.
Todo el código anterior funciona correctamente.

Se puede cerrar el tema.

Última edición por cubic; 21/10/2009 a las 01:34
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:29.