【问题标题】:jSoup - Is it possible to match elements with a minimum attr() length?jSoup - 是否可以匹配具有最小 attr() 长度的元素?
【发布时间】:2013-05-09 13:05:28
【问题描述】:

我可以很容易地匹配 jSoup 中的元素,但事后,我需要检查这些值是否至少超过 1 个字符。

我想知道是否有办法匹配具有特定属性的元素,但前提是该属性的内容长度大于 1 个字符?

希望这将使我不必自己手动检查长度。

document.select("img[src]")

以上匹配所有带有src属性的img标签,但有些属性可能是空白的,我宁愿根本不匹配。

伪代码解释我的意思:

document.select("img[src:length(1)]")

我查看了参考资料,但找不到任何合适的 - 除了 RegEx 解决方案?

http://jsoup.org/apidocs/org/jsoup/select/Selector.html

谢谢, 米奇。

【问题讨论】:

  • 为什么我的标签被更改为“JavaScript”?这不是 JavaScript,而是 Java。 jSoup 是一个使用 CSS 样式语法的 Java 库。

标签: java coldfusion jsoup railo


【解决方案1】:

[attr~=regex] 元素具有名为“attr”的属性,并且值与正则表达式匹配

根据您提供的源链接,您可以执行类似的操作

document.select("img[src~=.+]");

这应该会导致选择 src 属性为一个或多个字符的 img 元素。

【讨论】:

  • 文档表明这只是部分匹配,因此可以使用 . 而不是 .+ 并且仍然获得相同的结果。
【解决方案2】:

在 javascript 中,长度是一个属性。要查看它是否大于 1,请执行此操作

if ( document.select("img[src]").length > 1 )
do something
else
do something else

您只需要决定何时何地应用该逻辑即可。

【讨论】:

  • 这不是 JavaScript……它是 Java。我正在使用 jSoup,它是一个 Java HTML 解析器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-01
  • 2018-09-30
  • 1970-01-01
  • 1970-01-01
  • 2020-01-23
  • 2016-10-28
  • 1970-01-01
相关资源
最近更新 更多