Hướng dẫn jsoup check if string is html - jsoup kiểm tra xem chuỗi có phải là html không

8

Show

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 = true

Cờ 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

Hướng dẫn jsoup check if string is html - jsoup kiểm tra xem chuỗi có phải là html không

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

Hướng dẫn jsoup check if string is html - jsoup kiểm tra xem chuỗi có phải là html không

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)

  • Gây ra thất bại.

    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

    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ống
    • WTF

      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

      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ố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ờ.
    • 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áp
    • 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, 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áp
    • 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)

      Đố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 sai
    • khô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ử null
    • khô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ử null
    • cô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

      notempty
    • Xá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

      notemptyparam
    • cô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

      notempty
    • Xá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ống
    • 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 void fail(String msg)

      WTF

      Công khai Static & NBSP; Void & NBSP; WTF (String & NBSP; MSG)