Tôi muốn xóa các thẻ đó bằng nội dung của chúng khỏi HTML nguồn.Cách tìm kiếm nhận xét ("<!-- -->") bằng Jsoup?
Trả lời
Khi tìm kiếm về cơ bản bạn sử dụng Elements.select(selector)
trong đó selector
được xác định bởi this API. Tuy nhiên, các nhận xét không phải là các yếu tố về mặt kỹ thuật, do đó bạn có thể bị nhầm lẫn ở đây, chúng vẫn là các nút được xác định bằng tên nút #comment
.
Chúng ta hãy xem làm thế nào mà có thể làm việc:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Node;
public class RemoveComments {
public static void main(String... args) {
String h = "<html><head></head><body>" +
"<div><!-- foo --><p>bar<!-- baz --></div><!--qux--></body></html>";
Document doc = Jsoup.parse(h);
removeComments(doc);
doc.html(System.out);
}
private static void removeComments(Node node) {
for (int i = 0; i < node.childNodesSize();) {
Node child = node.childNode(i);
if (child.nodeName().equals("#comment"))
child.remove();
else {
removeComments(child);
i++;
}
}
}
}
đó là tốt và mã này làm việc
doc.select("#comment").remove();
và theo mã loại bỏ nhiều thẻ
doc.select("script, style, meta, link, comment, CDATA, #comment").remove();
'doc.select (" # comment "). Remove();' không hoạt động, không xóa nhận xét html. Nó đã làm việc cho bạn? – yetanothercoder
'doc.select (" # comment "). Remove()' có nghĩa là "Hủy bỏ bất kỳ nút nào có trường id bằng 'bình luận'." – Stephan
- 1. Nhận xét HTML sau</html>
- 2. C# XML /// Nhận xét, trong đó <returns></returns> thẻ hiển thị?
- 3. SourcesSafe 6.0: Tìm kiếm Nhận xét về tệp
- 4. C# HashSet <T> hiệu suất tìm kiếm (so với ObservableCollection <T>)?
- 5. Tìm kiếm toàn văn bỏ qua các nhận xét
- 6. Tìm kiếm mã nhận xét trên các tệp trong Eclipse
- 7. Cách xác định Loại trong một chú thích XML <return> nhận xét
- 8. Tìm kiếm thông qua tệp MP3 được truyền trực tiếp bằng HTML5 <audio> thẻ
- 9. Làm cách nào để ánh xạ <C-/> để chuyển đổi nhận xét trong vim?
- 10. Gói Agility Html: Tìm nút nhận xét
- 11. Nhận xét bằng JavaScript
- 12. Cách đăng tệp bằng JSoup?
- 13. Cách phân tích nhận xét bằng FParsec
- 14. Cách nhận thông tin thẻ <audio>?
- 15. Làm cách nào để tìm kiếm ',' và thay thế bằng ',' <CR><LF> trong trình chỉnh sửa của SQL Server Management Studio
- 16. VIM Làm cách nào để tìm kiếm <XX> biểu diễn byte đơn
- 17. Làm cách nào để tìm kiếm bộ sưu tập TList <T> chung?
- 18. Bạn có thể đặt nhận xét html bên ngoài các thẻ <html> không?
- 19. Làm thế nào để tìm kiếm một String trong List <tuple <string, string >> trong C#
- 20. Jsoup - Làm thế nào để xóa sạch html bằng cách thoát không xóa html không mong muốn?
- 21. NUnit: Tại sao không khẳng định.Thủ số <T> Ghi nhận xét ArgumentNullException của tôi?
- 22. % # ok <SAGROW> nhận xét có ý nghĩa gì trong MATLAB?
- 23. Cách tìm bản sao trong một ArrayList <Object>?
- 24. php: thay thế đôi <br /> bằng</p><p>
- 25. <?> vs <T>
- 26. Cách chọn <td> trong số <table> bằng javascript?
- 27. Bộ chọn CSS để tìm <select> với chỉ định <option> nhãn
- 28. sử dụng Semantic của <nav> trong HTML5 với yếu tố hình thức tìm kiếm
- 29. Nhận Tweet bằng Ảnh bằng cách sử dụng tìm kiếm twitter api
- 30. Nhận số mục của danh sách <> bằng cách sử dụng LINQ
hmm này đem lại cho tôi một gõ lỗi – user1893354
Nếu bạn có thể nhận được phiên bản 6 tuổi của Jsoup, nó đã hoạt động trở lại sau đó. Nếu không, nếu api được cập nhật, tôi hoan nghênh các bản sửa lỗi để cập nhật ví dụ này. Dường như danh sách ChildNodes được thực hiện không thể sửa đổi trong một số phiên bản. –
dlamblin