首页 > 解决方案 > Jsoup 按包含单引号的属性选择(Scala)

问题描述

使用 Jsoup 和 Scala,如果属性包含单引号,我如何按属性选择?例如,val document包含元素:

<a title="Select Size: 5'L x 5'W x 5'H">

document.select("[title*=Select Size: 5'L x 5'W x 5'H]")

以及三引号、单引号和反斜杠转义的各种组合导致

org.jsoup.select.Selector$SelectorParseException:在'title * = Select Size:5'L x 5'W x 5'处找不到平衡标记

请注意,在浏览器控制台中,以下 jQuery 片段成功选择了元素:

$("[title*='Select Size: 5\\'L x 5\\'W x 5\\'H']")

标签: scalajsoup

解决方案


你用的是什么版本的 Jsoup?我刚刚尝试过 1.10.2

  val html = Jsoup.parse("<a title=\"Select Size: 5'L x 5'W x 5'H\">")
  print(html.select("[title*=Select Size: 5'L x 5'W x 5'H]"))

并得到以下输出

  <a title="Select Size: 5'L x 5'W x 5'H"></a>

推荐阅读