首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于html标记内容提取的Scala字符串模式匹配

用于html标记内容提取的Scala字符串模式匹配
EN

Stack Overflow用户
提问于 2015-06-11 19:15:16
回答 1查看 680关注 0票数 0

中获取的HTML页面

代码语言:javascript
复制
val html = io.Source.fromURL("http://example.org/aPage.html").mkString()

如何提取包装在给定标签中的内容?为了说明这一点,例如,考虑到这个HTML片段和标记<textarea>

代码语言:javascript
复制
val html = "<p>Marginalia</p> 
            <textarea rows="3" cols="10">Contents of interest"</textarea 
            <p>More marginalia</p>"

如何获得"Contents of interest"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-12 01:21:39

有两种简单的方法可以做到:

Scala

将Scala依赖项添加到项目中:

libraryDependencies += "org.scala-lang.modules" %% "scala-xml" % "1.0.3"

现在,您可以解析HTML代码并选择所有textarea标记。

代码语言:javascript
复制
import scala.xml.XML
val htmlXml = XML.loadString(html)
val textareaContents = (htmlXml \\ "textarea").text

如果HTML是有效的,并且希望执行多个XPath查询,那么这可能是更好的方法。还可以查看这个博客以获得更多关于\\的含义或如何使用Scala库的信息。

雷吉普

另一种简单的方法是定义正则表达式并找到匹配:

代码语言:javascript
复制
val regex = "<textarea.*>(.+)</textarea>".r
regex.findAllIn(html).map {
  match => // process match
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30789527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档