2012-01-05 36 views
6

Tôi cố gắng để phân tích cú pháp HTML với HtmlAgilityPack theo cách sau:Hủy bỏ khoảng trắng và ký tự dòng mới khi phân tích với HtmlAgilityPack

HtmlDocument htmlDoc = new HtmlDocument(); 
htmlDoc.LoadHtml(xhtmlString); 

Thật không may là xhtmlString chứa khoảng trắng không cần thiết và ký tự xuống dòng, vì vậy _text của htmlDoc bây giờ trông như thế này :

<html xmlns=\"http://www.w3.org/1999/xhtml\">\n\t<head></head>\n\t<body>\n\n<p>Alle Auktionen<br /></p>\n\n\t</body>\n</html>

Đây là một vấn đề đối với tôi khi làm việc với các phần tử con của cơ thể.

Cách dễ nhất để xóa các ký tự không cần thiết này là gì?

HtmlAgilityPack có cung cấp một số loại chức năng để làm sạch HTML từ các dòng mới và các tab không?

+0

Có cách nào bạn có thể sử dụng String.Replace để giải quyết này? –

Trả lời

1

Đây là phần thụt đầu dòng tài liệu và không phải khoảng trắng và ký tự dòng mới không cần thiết.
Tôi không thể thấy đây có thể là vấn đề nhưng bạn không thể thay thế các ký tự đặc biệt như "\ t", "\ n"?

Làm một tìm kiếm nhanh chóng tôi thấy điều này Html Agility Pack: make code look neat
Có lẽ thiết lập một số thuộc tính false có thể hữu ích

+0

Tôi có thể thay thế các ký tự đặc biệt theo cách thủ công, nhưng tôi muốn trích xuất html (không có ý định vv). Ví dụ: nếu các ký tự dòng mới được mã hóa khác nhau vì người dùng nhập html có một hệ điều hành khác, tôi có thể gặp sự cố. – magnattic

+0

.Replace (Environment.NewLine, văn bản); Có thể làm việc cho nền tảng UNIX và UNIX nhưng không biết về "\ t" –

+0

@matheusrufca - mối quan tâm của atticae về các dòng mới là hợp lệ. Ông không nói về vấn đề đang chạy nền tảng mã chéo của mình, mối quan tâm của ông là về thao tác html được tạo bởi nền tảng khác. –

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