我有一个 HTML/JSP 的 DOM,我想在 DOM 中搜索特定的文本,并且需要为包含该文本的元素构建 XPath。使用 Jsoup API.Building a xpath 工作正常
如果它是元素的值或元素属性的值,我可以搜索文本。假设 DOM 中是否存在没有任何标签的文本,并且如果文本包含在 span 节点中,我该如何搜索?
有几种不同的解决方案。
jsoup API有一个实现伪选择器的Selector 类。具体来说:
:contains(text)
:matches(regex)
这些将返回包含搜索文本的元素列表。您必须尝试查看它们是否返回父容器或确切的子容器,或某种组合。
Element 类有一些可能有用的方法:
这些方法允许检索包含给定文本或正则表达式模式的元素或父元素。
这样做的缺点是,如果要匹配的字符串与属性的值或节点名称的值相同,则会返回误报。
请参阅字符串 API;有用的函数可能是indexOf
和split
。
请参阅Pattern API以构建正则表达式。