Dal momento che non hanno fornito alcun esempio HTML o di output desiderato, ecco una soluzione generale:
È possibile selezionare i commenti SGML in XPath utilizzando il test comment()
nodo; puoi toglierli dal documento chiamando lo .remove
su tutti i nodi di commento. Illustrato:
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"
Si noti che quanto sopra modifica il documento in modo distruttivo per rimuovere i commenti. Se si desidera mantenere il documento originale non modificato, si potrebbe in alternativa fare questo:
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>"
Infine, ricordiamo che, se non è necessario il markup, solo chiedendo per il text
sé non include commenti HTML:
p doc.text #=> "hello world"
Fornisci un frammento di codice HTML di esempio e la stringa risultante che desideri dopo averlo massaggiato. – Phrogz
ho solo bisogno di rimuovere i commenti HTML come "" dal mio html. Ho usato strisce e ha funzionato. Non so se questo è il modo giusto però. – Maverick