8
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đang gặp khó khăn với trình phân tích cú pháp JSOUP. Làm thế nào tôi có thể biết nếu chuỗi đã cho là mã HTML hợp lệ?
String input = "Your vote was successfully added." boolean isValid = Jsoup.isValid(input); // isValid = trueCờ Isvalid là đúng, bởi vì JSOUP trước tiên sử dụng htmltreeBuilder: Nếu thiếu HTML, đầu hoặc thẻ cơ thể, nó sẽ tự thêm vào. Sau đó, nó sử dụng lớp sạch hơn và kiểm tra nó để chống lại danh sách trắng.
Có cách nào đơn giản để kiểm tra xem Chuỗi có phải là HTML hợp lệ mà không có JSoup cố gắng làm cho nó HTML không?
Ví dụ của tôi là phản hồi AJAX, là loại nội dung "Text/HTML". Sau đó, nó đi đến trình phân tích cú pháp, JSOUP thêm thẻ này và kết quả là phản hồi không được hiển thị đúng.
Cảm ơn bạn đã giúp đỡ.
Đã hỏi ngày 20 tháng 1 năm 2014 lúc 12:15Jan 20, 2014 at 12:15
Trước hết, giải pháp được đề xuất bởi Reuben không hoạt động như mong đợi. Mẫu phải được biên dịch với Cờ mẫu.DOTALL. Đầu vào HTML có thể có (và có thể sẽ) các dấu hiệu dòng mới, v.v.
Vì vậy, nó phải là một cái gì đó như thế này:
Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL); boolean isHTML = htmlPattern.matcher(input).matches();Tôi cũng nghĩ rằng mẫu này nên tìm thẻ HTML không chỉ. Tiếp theo: không phải là tùy chọn hợp lệ duy nhất. Cũng có thể có thuộc tính tức là. Điều này cũng phải được xử lý.
Tôi đã chọn sửa đổi nguồn JSoup. Nếu htmltreeBuilder (thực sự trạng thái trước khi đó<html> element I throw ParseException and then I am sure that input file was not a valid HTML file.
Đã trả lời ngày 22 tháng 1 năm 2014 lúc 9:28Jan 22, 2014 at 9:28
user464592user464592user464592
2852 Huy hiệu vàng4 Huy hiệu bạc11 Huy hiệu đồng2 gold badges4 silver badges11 bronze badges
Sử dụng regex để kiểm tra String chứa HTML hoặc không
boolean isHTML = input.matches(".*\\<[^>]+>.*");Nếu String của bạn chứa giá trị HTML thì nó sẽ trả về true
String input = "<html><body></body></html>" ;Nhưng mã này Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL); boolean isHTML = htmlPattern.matcher(input).matches(); 0 sẽ trả về Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL); boolean isHTML = htmlPattern.matcher(input).matches(); 1
Đã trả lời ngày 20 tháng 1 năm 2014 lúc 13:34Jan 20, 2014 at 13:34
ReubenreubenReuben
5.4469 Huy hiệu vàng41 Huy hiệu bạc54 Huy hiệu đồng9 gold badges41 silver badges54 bronze badges
3
notempty
Xác nhận rằng chuỗi không phải là null và không trống
Thất bạiValidate extends Object công khai tĩnh & nbsp; void & nbsp; fail (String & nbsp; msg) Tham số: String input = "<html><body></body></html>" ;
3 - Thông báo đến đầu ra. Ném: HTML5 - Nếu chúng ta đạt đến trạng thái này Tham số: String input = "<html><body></body></html>" ;
3 - Thông báo đến đầu ra. Ném: HTML5 - Nếu chúng ta đạt đến trạng thái này Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL);
boolean isHTML = htmlPattern.matcher(input).matches();
2 Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL);
boolean isHTML = htmlPattern.matcher(input).matches();
2 Đối tượng ValidateExtends của lớp cuối cùng công khai Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL);
boolean isHTML = htmlPattern.matcher(input).matches();
2 Đối tượng ValidateExtends của lớp cuối cùng công khai Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL);
boolean isHTML = htmlPattern.matcher(input).matches();
2 Trình xác nhận để kiểm tra các đối số phương thức đó đáp ứng mong đợi. Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL);
boolean isHTML = htmlPattern.matcher(input).matches();
2 Trình xác nhận để kiểm tra các đối số phương thức đó đáp ứng mong đợi. Tóm tắt Phương pháp Xác nhận rằng mảng không chứa các phần tử null Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL);
boolean isHTML = htmlPattern.matcher(input).matches();
2 Xác nhận rằng mảng không chứa các phần tử null Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL);
boolean isHTML = htmlPattern.matcher(input).matches();
2 Xác nhận rằng chuỗi không phải là null và không trống Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL);
boolean isHTML = htmlPattern.matcher(input).matches();
2 Xác nhận rằng chuỗi không phải là null và không trống Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL);
boolean isHTML = htmlPattern.matcher(input).matches();
2 Xác nhận rằng tham số chuỗi không phải là null và không trống Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL);
boolean isHTML = htmlPattern.matcher(input).matches();
2 Tham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ;
0 - Tên của tham số, để trình bày trong ngoại lệ xác thực. Ném: boolean isHTML = input.matches(".*\\<[^>]+>.*");
8 - Nếu chuỗi là null hoặc trống Gây ra thất bại.
Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL); boolean isHTML = htmlPattern.matcher(input).matches(); 2
Tham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ; 0 - Tên của tham số, để trình bày trong ngoại lệ xác thực. Ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trống
Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL); boolean isHTML = htmlPattern.matcher(input).matches(); 2
Tham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ; 3 - Thông báo để đưa vào ngoại lệ nếu xác thực không thành công ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trống
Pattern htmlPattern = Pattern.compile(".*\\<[^>]+>.*", Pattern.DOTALL); boolean isHTML = htmlPattern.matcher(input).matches(); 2
Tham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ; 0 - Tên của tham số, để trình bày trong ngoại lệ xác thực. Ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trống
Tham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ; 3 - Thông báo để đưa vào ngoại lệ nếu xác thực không thành công ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trống
boolean isHTML = input.matches(".*\\<[^>]+>.*"); 6
WTF
Công khai Static & NBSP; Void & NBSP; WTF (String & NBSP; MSG)
Tham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ; 0 - Tên của tham số, để trình bày trong ngoại lệ xác thực. Ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trống
Tham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ; 3 - Thông báo để đưa vào ngoại lệ nếu xác thực không thành công ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trốngWTF
Tham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ; 3 - Thông báo để đưa vào ngoại lệ nếu xác thực không thành công ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trống
WTFCông khai Static & NBSP; Void & NBSP; WTF (String & NBSP; MSG)
Tham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ; 0 - Tên của tham số, để trình bày trong ngoại lệ xác thực. Ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trống
Tham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ; 3 - Thông báo để đưa vào ngoại lệ nếu xác thực không thành công ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trốngWTF
Công khai Static & NBSP; Void & NBSP; WTF (String & NBSP; MSG)
Thổi lên nếu chúng ta đạt đến một trạng thái bất ngờ.WTF
Công khai Static & NBSP; Void & NBSP; WTF (String & NBSP; MSG)
Thổi lên nếu chúng ta đạt đến một trạng thái bất ngờ.Tham số: String input = "<html><body></body></html>" ; 3 - Thông điệp để suy nghĩ về những cú ném: HTML5 - Nếu chúng ta đạt đến trạng thái này
Thất bại void isTrue(boolean val)
Trình xác nhận để kiểm tra các đối số phương thức đó đáp ứng mong đợi.
Tóm tắt Phương phápTham số: String input = "<html><body></body></html>" ; 3 - Thông điệp để suy nghĩ về những cú ném: HTML5 - Nếu chúng ta đạt đến trạng thái này
Thất bại void isTrue(boolean val, String msg)
Trình xác nhận để kiểm tra các đối số phương thức đó đáp ứng mong đợi.
Tóm tắt Phương phápXác minh đối tượng đầu vào không phải là null và trả về đối tượng đó.
Xác nhận rằng giá trị là sai void isFalse(boolean val)
Đối tượng ValidateExtends của lớp cuối cùng công khai
Trình xác nhận để kiểm tra các đối số phương thức đó đáp ứng mong đợi.Xác minh đối tượng đầu vào không phải là null và trả về đối tượng đó.
Xác nhận rằng giá trị là sai void isFalse(boolean val, String msg)
Xác nhận rằng giá trị là sai
Tham số: <html>1 - Đối tượng để kiểm tra String input = "<html><body></body></html>" ; 3 - Thông báo để đưa vào ngoại lệ nếu xác thực không ném ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu đối tượng không saikhông phải là người
công khai tĩnh & nbsp; void & nbsp; không phải là void noNullElements(Object[] objects)
Xác nhận rằng mảng không chứa các phần tử null
Tham số: String1 - Mảng để kiểm tra ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu mảng chứa phần tử nullkhông phải là người
công khai tĩnh & nbsp; void & nbsp; không phải là void noNullElements(Object[] objects, String msg)
Xác nhận rằng mảng không chứa các phần tử null
Tham số: String1 - Mảng để kiểm tra ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu mảng chứa phần tử nullcông khai tĩnh & nbsp; void & nbsp; không phải là
Tham số: String1 - mảng để kiểm tra String input = "<html><body></body></html>" ; 3 - thông báo sẽ bao gồm ngoại lệ nếu xác thực không số ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - nếu mảng chứa phần tử null
notemptyXác nhận rằng chuỗi không phải là null và không trống
Tham số: String6 - Chuỗi để kiểm tra ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trống
notemptyparamcông khai tĩnh & nbsp; void & nbsp; không phải là
Tham số: String1 - mảng để kiểm tra String input = "<html><body></body></html>" ; 3 - thông báo sẽ bao gồm ngoại lệ nếu xác thực không số ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - nếu mảng chứa phần tử null
notemptyXác nhận rằng chuỗi không phải là null và không trống
Tham số: String6 - Chuỗi để kiểm tra ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trống void wtf(String msg)
notemptyparam
Xác nhận rằng tham số chuỗi không phải là null và không trốngTham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ; 0 - Tên của tham số, để trình bày trong ngoại lệ xác thực. Ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trống
Tham số: String6 - Chuỗi để kiểm tra String input = "<html><body></body></html>" ; 3 - Thông báo để đưa vào ngoại lệ nếu xác thực không thành công ném: boolean isHTML = input.matches(".*\\<[^>]+>.*"); 8 - Nếu chuỗi là null hoặc trống void fail(String msg)
WTF
Công khai Static & NBSP; Void & NBSP; WTF (String & NBSP; MSG)