From: [EMAIL PROTECTED]
Operating system: Solaris 5.7
PHP version: 4.2.3
PHP Bug Type: *XML functions
Bug description: Fatal error: Call to undefined function: get_attribute_node()
Hi, my name is Damian.
I'm programming in php and i'm using DOMXML in SOLARIS 5.7 (Apache
1.3.27).
I have the next problem:
I build a XML document with a function, and then i try to parse this
document with DOM XML, but sometimes i have a problem. In the web appear
this error:
Fatal error: Call to undefined function: get_attribute_node()
This error is random, sometimes is work ok, and somtimes i have this
error.
Have u got any information about that ???
This is my code:
<?
session_start(); /* Inicio la sesion */
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Pagina nueva 1</title>
<base target="principal">
<link rel="stylesheet" href="/style.css" type="text/css">
</head>
<body bgcolor="#00005B">
<?
$start=10;
$delta=20;
$nivel=0;
/* Abre el documento */
$doc = domxml_open_mem($documento_domxml);
if(isset($variable_metodo_get)){
$elemento_metodo_get=$doc->get_elements_by_tagname
($variable_metodo_get);
$atributo_desplegado_elemento_metodo_get=$elemento_metodo_get[0]->get_attribute_node("DESPLEGADO");
if($atributo_desplegado_elemento_metodo_get->value() ==
"FALSE"){
$elemento_metodo_get[0]->set_attribute("DESPLEGADO", "TRUE");
} else{
$elemento_metodo_get[0]->set_attribute("DESPLEGADO", "FALSE");
}
$documento_domxml=$doc->dump_mem(true);
}
/* Obtengo el elemento root */
$root=$doc->document_element();
/* Obtengo los hijos de root */
$child_root=$root->child_nodes();
imprime_menu($root,count($child_root),$PHP_SELF,$start,$delta,$nivel); /*
Imprimo el menu */
/* Funcion recursiva */
function
imprime_menu($elemento_padre,$cant_hijos,$pagina_actual,$layer_start,$layer_delta,$nivel_func)
{
/* Obtengo los hijos del padre */
$hijos=$elemento_padre->child_nodes();
// echo "Tiene ".$cant_hijos." hijos<BR>";
for( $i = 0 ; $i < $cant_hijos ; $i++){
// echo "i=".$i."<BR>";
$atributo_desplegado=$hijos[$i]->get_attribute_node("DESPLEGADO");
$atributo_nombre_menu=$hijos[$i]->get_attribute_node("NOMBRE_MENU");
$atributo_tipo=$hijos[$i]->get_attribute_node("TIPO");
if( $atributo_tipo->value() == "LINK")
$atributo_path=$hijos[$i]->get_attribute_node("PATH");
// echo "Menu : ".$atributo_nombre_menu->value()." (TIPO
->
".$atributo_tipo->value().")<BR> Valor:
".$atributo_desplegado->value()."<BR>";
?>
<div id="Layer<? echo $layer_start; ?>"
style="position:absolute;
width:<?
if($atributo_tipo->value() == "MENU") echo 140 - 6 *
$nivel_func;
else echo 140 - 6 *
($nivel_func + 1); ?>px; height:<? echo
$layer_delta; ?>px; z-index:1; left: <?
if($atributo_tipo->value() == "MENU") echo 6 *
$nivel_func + 6;
else echo 6 * ($nivel_func +
1) + 6; ?>px; top: <? echo
$layer_start; $layer_start=$layer_start + $layer_delta; ?>px"><b><a
href="
<?
if($atributo_tipo->value() == "MENU"){
echo
$pagina_actual."?variable_metodo_get=".$hijos[$i]->node_name();
}else{
/* Es un Link
*/
echo
$atributo_path->value();
}
?>
"onMouseOver="self.status='<? echo $atributo_nombre_menu->value(); ?>';
return true" onMouseOut="self.status=''; return true" class="<?
if($atributo_tipo->value() == "MENU") echo "carpeta";
else echo "link"; ?>" target="<? if($atributo_tipo->value() == "MENU")
echo "_self";
else echo "principal"; ?>">
<? if($atributo_tipo->value() == "MENU" &&
$atributo_desplegado->value() == "TRUE") echo " - ";
if($atributo_tipo->value() == "MENU" && $atributo_desplegado->value()
==
"FALSE") echo " + ";
echo $atributo_nombre_menu->value(); ?> </a></b></div>
<?
if($atributo_desplegado->value() == "TRUE"){
$layer_start=imprime_menu($hijos[$i],count($hijos[$i]->child_nodes()),$pagina_actual,$layer_start,$layer_delta,$nivel_func+1);
/* Imprimo los hijos */
}
}
return $layer_start;
}
?>
</body>
</html>
--
Edit bug report at http://bugs.php.net/?id=21907&edit=1
--
Try a CVS snapshot: http://bugs.php.net/fix.php?id=21907&r=trysnapshot
Fixed in CVS: http://bugs.php.net/fix.php?id=21907&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=21907&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=21907&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=21907&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=21907&r=support
Expected behavior: http://bugs.php.net/fix.php?id=21907&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=21907&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=21907&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=21907&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=21907&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=21907&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=21907&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=21907&r=gnused