Foros del Web » Programando para Internet » PHP »

Extraer solo un parte con getElementsByTagName

Estas en el tema de Extraer solo un parte con getElementsByTagName en el foro de PHP en Foros del Web. De la pagina donde extraigo el contenido viene asi: Código HTML: <div id= "htmlcaption_stg_1" class= "nivo-html-caption" > <h1> Alcoholímetro en hielos </h1> Cubos de hielo ...
  #1 (permalink)  
Antiguo 17/01/2013, 11:18
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Extraer solo un parte con getElementsByTagName

De la pagina donde extraigo el contenido viene asi:

Código HTML:
<div id="htmlcaption_stg_1" class="nivo-html-caption"><h1>Alcoholímetro en hielos</h1>Cubos de hielo con leds que te alertan cuando se ha bebido mucho </div> 
Lo extraigo asi...
Código PHP:
<div id="htmlcaption_stg_<?php echo $e ?>" class="nivo-html-caption"><h1><?php echo $caption->item($i)->getElementsByTagName('h1')->item(0)->nodeValue?></h1><?php echo $caption->item($i)->nodeValue?></div>
Pero... el contenido de h1 me viene sin problemas me da solo lo que necesito
pero lo que esta fuera de h1 no me lo da solo.. si no que viene todo junto otra vez... osea me da asi...
Alcoholímetro en hielosCubos de hielo con leds que te alertan cuando se ha bebido mucho

como hago para solo obtener el valor de lo que esta fuera del encabezado?

Gracias por la ayuda
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #2 (permalink)  
Antiguo 17/01/2013, 12:31
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Extraer solo un parte con getElementsByTagName

Puedes usar lastChild:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $html = '<!DOCTYPE html><html><head><title>Test</title></head><body>
  4. <div id="htmlcaption_stg_1" class="nivo-html-caption">
  5. <h1>Alcoholímetro en hielos</h1>
  6. Cubos de hielo con leds que te alertan cuando se ha bebido mucho
  7. </div></body></html>';
  8.  
  9. $doc = new DOMDocument();
  10. $doc->loadHTML($html);
  11. echo $doc->getElementById('htmlcaption_stg_1')->lastChild->nodeValue;
  12. //Cubos de hielo con leds que te alertan cuando se ha bebido mucho

http://php.net/manual/es/class.domnode.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 17/01/2013, 12:32
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Extraer solo un parte con getElementsByTagName

No se si alguien me pueda dar su opinion...
en vista de que no hay mucha respuesta a mi tema... se me ocurre esto.. pero no se que tan loco o tonta sea mi solucion...

Puedo saber que es lo que tengo dentro del h1, podria entonces contar los caracteres y despues a la siguiente cadena restarle al inicio ese numero de caracteres...

es buena idea?
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #4 (permalink)  
Antiguo 17/01/2013, 13:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer solo un parte con getElementsByTagName

Si la idea funciona entonces es buena.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 17/01/2013, 13:32
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: Extraer solo un parte con getElementsByTagName

Suponiendo que el h1 no tiene atributos:

- Si $text es el texto completo.
- $h1_1, $h1_2... son los contenidos de varios h1
Código PHP:
Ver original
  1. str_replace(array("<h1>".$h1_1."</h1>",
  2. "<h1>".$h1_2."</h1>" /* , ....... */
  3. ),"",$text);


Si el h1 tiene atributos, es exactamente igual, pero con preg_replace.
Básicamente.."El resto" de la cadena, es el resultado de reemplazar los <h1> por "" en el texto original.

Etiquetas: html, parte
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 19:56.