2009-11-04 31 views
10

Khi tôi làm như sau với Nokogiri:Processing chỉ HTML mảnh và gửi lại nó

some_html = '<img src="bleh.jpg"/>test<br/>' 
f = Nokogiri::HTML(some_html) 
#do some processing 
puts f 

Nó sẽ in toàn bộ cấu trúc doc XHTML với mã trên trong nó.

Tôi làm cách nào để in/trả về/nhận phần html nằm trong số some_html biến?


số

e sẽ trở lại:

"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www 
.w3.org/TR/REC-html40/loose.dtd\">\n<html><body>\n<img src=\"bleh.jpg\">test<br>\n 
</body></html>\n" 

Tôi chỉ muốn bên trong phần/đoạn:

<img src=\"bleh.jpg\">test<br> 

Trả lời

1

Ý anh là gì bởi phần 'html' ?

Chỉ cần làm f.text() để lấy văn bản bên trong.

30

Thay vì phân tích cú pháp sử dụng Nokogiri::HTML(...) sử dụng Nokogiri::HTML::fragment(...):

asdf = Nokogiri::HTML::fragment('<img src="bleh.jpg">test<br>') 
print asdf.to_html 
# >> <img src="bleh.jpg">test<br> 
+1

đó là một vấn đề của phong cách, nhưng cá nhân tôi thấy Nokogiri :: HTML.fragment ít gây nhầm lẫn hơn Nokogiri :: HTML :: mảnh - nó không giống như một lỗi đánh máy ;) – mkk

Các vấn đề liên quan