Ver Mensaje Individual
  #5 (permalink)  
Antiguo 12/05/2011, 19:05
angelfcm
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: Duda sobre el DOM

Hola!,
Ya te entendí.
Mira encontré esta forma de conseguir el html directamente de cualquier nodo, sólo modifica lo que escribo en comentario:
Código PHP:
Ver original
  1. <?php
  2. function string_getInsertedString($long_string,$short_string,$is_html=false){
  3.   if($short_string>=strlen($long_string))return false;
  4.   $insertion_length=strlen($long_string)-strlen($short_string);
  5.   for($i=0;$i<strlen($short_string);++$i){
  6.     if($long_string[$i]!=$short_string[$i])break;
  7.   }
  8.   $inserted_string=substr($long_string,$i,$insertion_length);
  9.   if($is_html && $inserted_string[$insertion_length-1]=='<'){
  10.     $inserted_string='<'.substr($inserted_string,0,$insertion_length-1);
  11.   }
  12.   return $inserted_string;
  13. }
  14. function DOMElement_getOuterHTML($document,$element){
  15.   $html=$document->saveHTML();
  16.   $element->parentNode->removeChild($element);
  17.   $html2=$document->saveHTML();
  18.   return string_getInsertedString($html,$html2,true);
  19. }
  20.  $doc=new DOMDocument();
  21.  $doc->load("Tu_archivo"); // Cambia la forma como lo cargas(loadXML,loadHTML, etc.)
  22.  $html=$doc->getElementsByTagName("html")->item(0);//Aquí llama al elemento que quieras ya sea por tagname, id, classname.
  23.  $string=DOMElement_getOuterHTML($doc,$html);
  24.  $doc2=new DOMDocument();
  25.  $doc2->loadXML($string);
  26.  $html=$doc2->saveHTML();
  27.  echo $html; //EL RESULTADO ESTÁ AQUÍ!!!
  28. ?>
Saludos!.

Atención: para poder seguir ayudandote, agradéce mis mensajes(karma) o envíame un MP para encontrar tus mensajes rápido.