Hay muchos ejemplos de cómo quitar etiquetas HTML de un documento utilizando Ruby, Hpricot y Nokogiri con métodos de texto interno que eliminan todo el HTML para usted de manera fácil y rápida.Eliminar texto del documento HTML con Ruby
Lo que intento hacer es lo contrario, eliminar todo el texto de un documento HTML, dejando solo las etiquetas y sus atributos.
Consideré el bucle a través de la configuración del documento inner_html a nil, pero en realidad tendrías que hacer esto a la inversa ya que el primer elemento (root) tiene un inner_html del resto del documento, así que idealmente tendría para comenzar en el elemento más interno y establecer inner_html en nil mientras se mueve hacia arriba a través de los antepasados.
¿Alguien sabe un pequeño truco para hacer esto de manera eficiente? Estaba pensando que tal vez Regex podría hacerlo, pero probablemente no tan eficientemente como lo haría un tokenizer/analizador de HTML.
¿Va a tener que lidiar con un marcado incorrecto? (entidades no guardadas, etc.) – Neall
Es posible: el marcado que estoy procesando proviene de usuarios finales, por lo que no se puede confiar en ellos. – davidsmalley