Foros del Web » Programación para mayores de 30 ;) » Programación General »

setIdAttribute() me falla en DOM PHP

Estas en el tema de setIdAttribute() me falla en DOM PHP en el foro de Programación General en Foros del Web. Estoy con PHP, usando un metodo llamado "setIdAttribute()" para poder seleccionar mis items xml mediante un identificador unicos. Me da este error: Código PHP: < ...
  #1 (permalink)  
Antiguo 29/10/2009, 09:48
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
setIdAttribute() me falla en DOM PHP

Estoy con PHP, usando un metodo llamado "setIdAttribute()" para poder seleccionar mis items xml mediante un identificador unicos.

Me da este error:

Código PHP:
<b>Fatal error</b>: [COLOR="Red"Call to undefined method DOMDocument::setIdAttribute() i[/COLOR]<b>C:wampwwwagenda jovenNovedadesphpeliminar.php</bon line <b>21</b><br /> 
Asi es mi xml:

Código PHP:
 <item dir="fotos" id="almuerzo_fao_telefood_.jpg">
    <
foto><![CDATA[almuerzo_fao_telefood_.jpg]]></foto>
    <
titulo><![CDATA[ ]]></titulo>
    <
descripcion><![CDATA[ ]]></descripcion>
  </
item
Y esta es mi llamada:

Código PHP:
$xml = new DOMDocument();
$xml->load($archivo_xml);
// con esto logro que funcione el select by ID.
[COLOR="#ff0000"]$xml->setIdAttribute('id'true);[/COLOR]

$a_borrar $xml->getElementById($foto)->item(0);

$a_borrar->getElementsByTagName("titulo")->item(0)->childNodes->item(0)->nodeValue "";
$a_borrar->getElementsByTagName("descripcion")->item(0)->childNodes->item(0)->nodeValue "";
$xml->formatOutput true;
$xml->save($archivo_xml); 
Que es lo que pasa que no funciona el metodo?
  #2 (permalink)  
Antiguo 29/10/2009, 10:12
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: setIdAttribute() me falla en DOM PHP

Probe con Xpath, y esto si funciona:

Cita:
$xml = new DOMDocument();
$xml->load($archivo_xml);
// con esto logro que funcione el select by ID.
//$xml->setIdAttribute('id', true);
//$a_borrar = $xml->getElementById($foto)->item(0);
//echo $set->item(0)->getAttributeNode("id")->nodeValue;


$xpath = new DOMXPath($xml);
$set = $xpath->query("//item[@id = '".$a_eliminar."']");

$set->item(0)->getElementsByTagName("titulo")->item(0)->childNodes->item(0)->nodeValue = "";
$set->item(0)->getElementsByTagName("descripcion")->item(0)->childNodes->item(0)->nodeValue = "";
$xml->formatOutput = true;
$xml->save($archivo_xml);
Pero hubiera sido bueno hacer la consulta sin Xpath.

Última edición por mayid; 29/10/2009 a las 10:28
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 21:00.