Как эффективно узнать, что не так с вводом через Jsoup?
Я пытаюсь проверить HTML-код с помощью Jsoup и метода Jsoup.isValid
всегда возвращает false, но я здесь в неведении, потому что это не говорит мне, где ошибка.
Вот мой код:
class PageWhitelist extends Whitelist {
public PageWhitelist() {
addTags("html", "head", "meta", "style", "body", "a", "div");
addProtocols("a", "href", "http");
}
}
String markup = "<body><head>...";
PageWhitelist whitelist = new PageWhitelist();
boolean valid = Jsoup.isValid(markup, whitelist);
assertTrue(valid);
valid
просто оценивается как ложное, тест не пройден, и Jsoup не дает мне никакой подсказки о том, что вызывает ошибку вообще.
Как я могу знать, что на самом деле происходит?
1 ответ
Ну, я никогда не использовал isValid
потому что проверка HTML - это то, что зависит от того, что вы действительно хотите увидеть на странице. Например, допустим, вы запросили страницу и выбрали элемент. Этот элемент, имеющий значение NULL, означает, что HTML-код для меня недопустим.
Что я делаю: скажем, я хочу такой якорь, как
a href="http://stackru.com/questions/28509726/how-to-effectively-know-whats-wrong-with-input-via-jsoup
Я использую Jsoup, чтобы выбрать элемент. Если б NULL
означает, что моя страница недействительна.
Elements anchors = Jsoup.parse(html).select("a[href*=stackru.com/questions/]");
if (anchors.isEmpty()) {
// Invalid
}
// valid