我过去使用过 jsoup,但我似乎无法理解 jquery 之类的选择器是如何定义的。我已经阅读了源代码,但我仍然无法理解。
public static final class ContainsOwnText extends Evaluator {
private String searchText;
public ContainsOwnText(String searchText) {
this.searchText = searchText.toLowerCase();
}
@Override
public boolean matches(Element root, Element element) {
return (element.ownText().toLowerCase().contains(searchText));
}
@Override
public String toString() {
return String.format(":containsOwn(%s", searchText);
}
}
上面可以这样调用
select("*:containsOwn("+ str + ")");
问题:
有人可以向我解释一下 ContainsOwn 的工作原理吗?
return String.format(":containsOwn(%s", searchText);
为什么上面不是这样?
return String.format(":containsOwn(%s)", searchText);
我问是因为我想了解 jsoup 是如何工作的,并不是我在让它工作时遇到了麻烦。我只想知道它是怎么做到的。如果我想用类似 jquery 的选择器复制这种行为并想开发类似的东西我应该怎么做?