簡體   English   中英

刪除HTML標記+內容

[英]Remove HTML tags + content

好吧,聽起來很簡單,我仍然無法弄清楚如何做到這一點(想象一下,我甚至決定改變語言)。

所以,我有簡單的文本或包含一些標簽的文本( 注意 :有些可能不被視為有效的 html標簽,例如<ref> ),我想要刪除所有標簽及其內容。

嘗試使用Nokogiri的.search .search("//text()").text但它仍然遠非我所需要的。

想法?


PS我正在尋找一個防彈,100%工作的解決方案,所以RegEx是不可能的......


樣本輸入/輸出

One <!-- Two -->Three

應該回歸One Three

This is <a href='#'>some Text</a>

應該返回This is

Even more <ref name='tag'>reference</ref><br>text

應該返回Even more text

Nokogiri對於手頭的問題似乎有些過分,我會用正則表達式來解決它,如下所示

input = "One <!-- Two -->Three"
input.gsub(/(\<.+\>)/) 
#=> "One Three"

input = "This is <a href='#'>some Text</a>"
input.gsub(/(\<.+\>)/, "")
#=> "This is "

input = "Even more <ref name='tag'>reference</ref><br>text"
input.gsub(/(\<.+\>)/, "")
#=> "Even more text"

關於rubular的演示

如果您想使用Nokogiri執行此操作,則必須使用DocumentFragment類,因為該文本不是有效的HTML或XML文檔。

doc = Nokogiri::HTML::DocumentFragment.parse(text)

puts doc.xpath("text()")

這為您提供了指定的輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM