Linux en Espanol
 
Extraer contenido del texto de varias etiquetas html (tema #24589)
Publicar nuevo tema  Responder al tema    Foros de discusión -> Programación
Autor Mensaje
lopera604
Forista
Registrado: 2012-12-09
Mensajes: 2

Publicado: 2012-12-09 15:15:48    Asunto: Extraer contenido del texto de varias etiquetas html

Buenas a todos y antetodo gracias por el mero hecho de leer el post, haber me ha surgido un problema que no consigo resolver, quiero extraer el contenido texto entre la apertura y cierre de una etiqueta, EJ: <a>contenido</a>, pero no tan facil complico mas no se encuentra en la misma linea, en diferentes lineas:
<a>
contenido
</a>
y tambien de alguna forma indicarle que me recorra el archivo de texto y valla extrayendo siempre lo que encuentre entre patron1 y patron2.
<patron1>
contenido
</patron2>
Amplio mas la explicacion poniendo mas ejemplos:
<patron1>
contenido => este lo muestre
</patron2>
<patron2>
contenido => este no lo muestre
</patron1>
<patron1>
contenido => este lo muestre
</patron2>

He probado utilizar grep, sed, awk, y algunos mas y nada todos me funcionan pero deben de estar la apertura y el cierre de la etiqueta en la misma linea, pero en distinta ninguno me ha funcionado.

Gracias a todos.
Un saludo.
AnimAlf
Forista


Registrado: 2008-08-18
Mensajes: 786

Publicado: 2012-12-09 20:32:40    Asunto:

[code:1:685c4faaa3]cat archivo.html | xml_grep --nowrap a[/code:1:685c4faaa3]

[code:1:685c4faaa3]cat archivo.html | xml_grep --nowrap patron[/code:1:685c4faaa3]
miguelgf
Forista


Registrado: 2006-12-28
Mensajes: 621

Publicado: 2012-12-09 23:15:36    Asunto:

Hola.

Con awk puede hacerse, pero mucho mejor con herramientas especializadas en tratamiento de xml como propone Animalf.
Con awk ser?a:
[code:1:a3cc672845]cat fichero_datos.xml | awk 'BEGIN {ESTADO=1} \
{ \
if (ESTADO==1 && $1=="<patron1>") {ESTADO=2} \
else {
if (ESTADO==2) \
{ if ($1=="</patron2>") {ESTADO=1} \
else {print $0} \
} \
} \
}'[/code:1:a3cc672845]

Saludos.
lopera604
Forista
Registrado: 2012-12-09
Mensajes: 2

Publicado: 2012-12-10 12:11:06    Asunto: Extraer contenido del texto de varias etiquetas html

Perfecto gracias a los dos usuarios que habeis respondido:

AnimAlf
miguelgf

ya estoy extrayendo lo que yo deseaba de las etiquetas html.

Gracias.
Un saludo.





La marca registrada Linux (R) se usa siguiendo la sublicensia obtenida del "Linux Mark Institute",
el LICENCIATARIO exclusivo de Linus Torvalds, propietario de la marca en EEUU y otros países
The registered trademark Linux (R) is used pursuant to a sublicense from the Linux Mark Institute,
the exclusive LICENSEE of Linus Torvalds, owner of the mark in the U.S. and other countries