Nokogiriを使用して、HTML文書のbody要素までをすべて削除しますか?また、閉じたボディ要素とその後のすべて?Nokogiriで要素を削除する
答えて
(もちろん私見)が<body>
要素を抽出するためにXPathを使用することです最も簡単な方法:
html = '<html><head><title>xxx</title></head><body><p>dsfkj</p><p><b>sdff</b> dsfsdf</p></body></html>'
doc = Nokogiri::HTML(html)
body = doc.xpath('//body')
は今、あなただけの<body>
要素(およびその子を)持っているbody
に。次に、HTMLを取得する:
body_html = body.to_s
# "<body>\n<p>dsfkj</p>\n<p><b>sdff</b> dsfsdf</p>\n</body>"
トリックは、あなたが望んでいないものを捨てようとするのではなく、あなたが望むものを抽出することです。最終結果は同じですが、クエリー言語を自由に使いたいときに望ましくないものを見つけ出すよりも簡単なものを見つけることができます。
これはとてもシンプルなので、私はそれを考えなかったと信じられません!ありがとう! –
@Michael:間違ったアプローチに縛られて、新鮮な目で数分間で問題を解決できるときには、強制的に動作させるのは非常に簡単です。そこには、それを行った、それのためにっぽいTシャツを取得していない。 –
「to_s」を使用してHTMLを取得するのではなく、「to_html」を使用します。それはもっと自己文書化しています。また、HTMLを使って作業する場合は、XPathではなくCSSアクセサーを使用し、 '
'や' 'などの単一タグの明示的な参照のためにNodeSetを返す 'xpath'ではなくノードを返す' at'を使用します。 、 'body = doc.at( 'body')'と 'body_html = body.to_html'です。 –- 1. Nokogiriの要素から外部タグを削除しますか?
- 2. 削除要素
- 3. JQueryで要素を削除
- 4. Jqueryモバイルタップで要素を削除する
- 5. ダブルクリックでJquery要素を削除する
- 6. EntityFrameWorkでDb要素を削除する
- 7. Greasemonkeyでリスト要素を削除する
- 8. Nokogiri要素の子にアクセスする
- 9. Nokogiri要素の子インデックスを調べる
- 10. テーブルビューのオブジェクトを削除する要素を削除します。
- 11. remove_attributeは、単に属性nokogiriを削除する代わりにnilノード要素を返す
- 12. リストから要素を削除する
- 13. 要素のタッチイベントを削除する
- 14. leavedの要素を削除する
- 15. コレクションから要素を削除する
- 16. 要素の値を削除するXSLT
- 17. omnet ++モジュールの要素を削除する
- 18. リストの要素を削除する
- 19. ベクトルの要素を削除する
- 20. 要素を削除するjavascript jquery
- 21. リンクリストから要素を削除する
- 22. 子タグ/要素を削除する
- 23. リストから要素を削除する
- 24. 要素からツールヒントイベントを削除する
- 25. 次の要素を削除する - jquery
- 26. JSoup要素を削除する
- 27. ArrayListの要素を削除する
- 28. FiniteSetから要素を削除する
- 29. 3要素タプルの最初の要素を削除する
- 30. Nokogiri inner_HTMLオブジェクトでエスケープシーケンスを無視/削除する方法
本文を削除して本文全体を削除した場合、新しい文書を作成して古い文書の「
」のみをコピーすると意味があります。そのようにすることは、同じコインの反対側です。 –