過去に 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 のようなセレクターでこの動作を再現し、同様のものを開発したい場合、どうすればよいですか?