2010-03-29 25 views
6

Tôi không thể tìm thấy bất kỳ hướng dẫn nào trên trang web của họ. Tôi tự hỏi tôi có thể sử dụng Html Agility Pack và sử dụng nó để phân tích chuỗi không?Tôi có thể sử dụng Gói nhanh nhẹn Html cho mục này không?

Giống như nói rằng tôi có

string = "<b>Some code </b> 

tôi có thể sử dụng gói nhanh nhẹn để thoát khỏi các <b> thẻ? Tất cả các ví dụ tôi thấy cho đến nay đã được tải như tài liệu html.

+0

dụ thêm ... –

+1

Nó có thể được thực hiện thậm chí simlier với HAP, trong một dòng: 'var text = HtmlNode.CreateNode ("Một số mã") .InnerText;' – Alex

Trả lời

8

Nếu đó là html thì có.

string str = "<b>Some code</b>"; 
// not sure if needed 
string html = string.Format("<html><head></head><body>{0}</body></html>", str); 
HtmlDocument doc = new HtmlDocument(); 
doc.LoadHtml(html); 

// look xpath tutorials for how to select elements 
// select 1st <b> element 
HtmlNode bNode = doc.DocumentNode.SelectSingleNode("b[1]"); 
string boldText = bNode.InnerText; 
+0

Ok sau đó điều gì sẽ Tôi làm gì với nó làm thế nào tôi sẽ làm một số phân tích cú pháp? – chobo2

+0

Cảm ơn Hmm nhưng tôi đã sao chép và dán mã đó vào một ứng dụng giao diện điều khiển và nhập lại nhanh nhạy html nhưng trên dòng HtmlNode tôi nhận được một ngoại lệ tham chiếu null. – chobo2

+0

Có thể là HtmlNode bNode = doc.DocumentNode.SelectSingleNode ("/ b [1]"); –

2

Tôi không nghĩ đây thực sự là cách sử dụng tốt nhất HtmlAgilityPack.

Thông thường tôi thấy mọi người đang cố gắng phân tích một lượng lớn html bằng cách sử dụng cụm từ thông dụng và tôi trỏ họ tới HtmlAgilityPack nhưng trong trường hợp này tôi nghĩ sẽ tốt hơn nếu sử dụng regex.

Roy Osherove có một bài đăng blog mô tả làm thế nào bạn có thể loại bỏ tất cả các html từ một đoạn:

Thậm chí nếu bạn đã làm được những xpath đúng với mẫu Mika Kolari của sẽ này chỉ làm việc cho một đoạn mã với một thẻ <b> trong đó và sẽ bị hỏng nếu mã đã thay đổi.

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