2011-07-27 39 views
7

Cần một chút trợ giúp về HTML Agility Pack!Trích xuất văn bản bên trong từ nút HTML BODY với Gói nhanh nhạy Html

Về cơ bản, tôi muốn lấy văn bản thuần túy bằng nút cơ thể của HTML. Cho đến nay tôi đã thử điều này trong vb.net và nó không trả lại ý nghĩa innertext không thay đổi được nhìn thấy, cũng ít nhất là từ những gì tôi có thể nhìn thấy.

Dim htmldoc As HtmlDocument = New HtmlDocument 
htmldoc.LoadHtml(html) 

Dim paragraph As HtmlNodeCollection = htmldoc.DocumentNode.SelectNodes("//body") 

If Not htmldoc Is Nothing Then 
    For Each node In paragraph 
     node.ParentNode.RemoveChild(node, True) 
    Next 
End If 

Return htmldoc.DocumentNode.WriteContentTo 

Tôi đã thử này:

Return htmldoc.DocumentNode.InnerText 

Nhưng vẫn không có may mắn!

Bất kỳ lời khuyên nào ???

+1

thể trùng lặp của [Grab tất cả các văn bản từ html với Html Agility Pack] (http://stackoverflow.com/questions/4182594/grab-all-text-from-html- with-html-agility-pack) – richard

Trả lời

13

Làm thế nào về:

Return htmldoc.DocumentNode.SelectSingleNode("//body").InnerText 
+0

Xin chào Jeff, tôi đã thử điều đó sớm hơn nhưng dữ liệu trả lại chứa rất nhiều các ký tự không mong muốn như &, {,} và rất nhiều html taging và cũng có thẻ script. Khoảng cách dòng là chỉ ra khỏi cửa sổ :) Có lẽ tôi có thể sử dụng regex để sửa lỗi đó. Nhưng tôi muốn tập trung hơn vào Html Agility Pack – Kevin

+0

Vâng, không có nhiều bạn có thể làm về điều đó ngoại trừ làm sạch ra html của undesirables. InnerText bao gồm mọi thứ bạn thấy trong tài liệu không phải là một phần của phần tử. Vì vậy, bao gồm khoảng trắng, mã trong các nút script, vv Nếu mục tiêu của bạn là để có được văn bản như nó trông giống như kết xuất trong một trình duyệt web, bạn sẽ không nhận được nó theo cách này. –

+0

Hmm Tôi hiểu ý của bạn là gì. Có lẽ tôi đã nhầm lẫn với bẩm sinh và bản rõ. Mục đích chính là lấy lại văn bản sạch hoặc phân tích lại HTML với nội dung văn bản chính trong đó. Bạn có thể cho tôi biết làm thế nào để có được về điều này xin vui lòng. – Kevin

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