Puesto que no se ha proporcionado ningún tipo de HTML muestra o salida deseada, aquí es una solución general:
Puede seleccionar los comentarios SGML en XPath mediante la prueba comment()
nodo; puede quitarlos del documento llamando al .remove
en todos los nodos de comentarios. Ilustrado:
require 'nokogiri'
doc = Nokogiri.XML('<r><b>hello</b> <!-- foo --> world</r>')
p doc.inner_html #=> "<b>hello</b> <!-- foo --> world"
doc.xpath('//comment()').remove
p doc.inner_html #=> "<b>hello</b> world"
Tenga en cuenta que lo anterior modifica el documento de forma destructiva para eliminar los comentarios. Si desea guardar el documento original sin modificar, se puede, alternativamente, hacer esto:
class Nokogiri::XML::Node
def inner_html_reject(xpath='.//comment()')
dup.tap{ |shadow| shadow.xpath(xpath).remove }.inner_html
end
end
doc = Nokogiri.XML('<r><b>hello</b> <!-- foo --> world</r>')
p doc.inner_html_reject #=> "<r><b>hello</b> world</r>"
p doc.inner_html #=> "<r><b>hello</b> <!-- foo --> world</r>"
Por último, tenga en cuenta que si no es necesario el marcado, simplemente pidiendo la text
en sí no incluye comentarios HTML:
p doc.text #=> "hello world"
Proporcione un fragmento HTML de muestra y la cadena resultante que desea después de masajearlo. – Phrogz
solo necesitaba los comentarios HTML eliminados como "" de mi html. Usé strip y funcionó. No sé si este es el camino correcto. – Maverick