搜索DOM中的特定文本

时间:2013-01-10 06:34:33

标签: java dom jsoup

我有一个HTML / JSP的DOM,我想搜索DOM中的特定文本,并且需要为包含文本的元素构建XPath。使用Jsoup API.Building xpath工作正常

我能够搜索文本,如果它是元素的值或元素属性的值。假设DOM中没有任何标签的文本,如果文本包含在span节点中,我该如何搜索?

1 个答案:

答案 0 :(得分:2)

解决方案

有几种不同的解决方案。

jsoup选择器

jsoup API有一个Selector class来实现pseudo-selectors。具体做法是:

  • :contains(text)
  • :matches(regex)

这些将返回包含搜索文本的元素列表。您必须尝试查看它们是返回父容器还是确切的子容器,还是某些组合。

jsoup元素

Element class有一些可能有用的方法:

这些方法允许检索包含给定文本或正则表达式模式的元素或父元素。

字符串转换

  1. 将HTML转换为字符串。
  2. 正常搜索文本元素(例如,正则表达式)。
  3. 这样做的缺点是,如果要匹配的字符串与属性的值或节点名称的值相同,则会返回误报。

    资源

    String API;有用的功能可能是indexOfsplit

    请参阅Pattern API以构建正则表达式。