2015-06-17 52 views
1

我想通過使用css或xpath選擇器來刪除stylescript標記及其內容。如何通過使用css或xpath選擇器拒絕指定HTML標記

這是一個例子HTML:

<html> 
    <head> 
    <title>test</title> 
    <style> 
     // style 
    </style> 
    <script> 
     /* some script */ 
    </script> 
    </head> 
    <body> 
    <p>text</p> 
    <script> 
     /* some script */ 
    </script> 
    <div>foo</div> 
    </body> 
</html> 

我想這樣的HTML:

<html> 
    <head> 
    <title>test</title> 
    </head> 
    <body> 
    <p>text</p> 
    <div>foo</div> 
    </body> 
</html> 

我想我可以得到HTML不包括<script>標籤使用此代碼,但不知何故代碼只能複製HTML。

doc = Nokogiri::HTML(open("foo.text")) 
doc.css(":not(script)").to_html 

如何啓用我想要的行爲?

回答

1

簡單的就是:

doc.search('style,script').remove 
1

嘗試這些行:

doc.search('.//style').remove 
doc.search('.//script').remove 
+0

歡迎堆棧溢出。由OP選擇最適合其需求的答案。他們可以選擇在短時間內改變他們的選擇。首先沒有任何意義,在OP的思想中更好的答案是重要的。 –