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

时间:2015-06-11 19:15:17

标签: string scala pattern-matching

给定从

获取的HTML页面
val html = io.Source.fromURL("http://example.org/aPage.html").mkString()

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

val html = "<p>Marginalia</p> 
            <textarea rows="3" cols="10">Contents of interest"</textarea 
            <p>More marginalia</p>"

如何获取"Contents of interest"

1 个答案:

答案 0 :(得分:1)

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

Scala XML

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

<iron-selector attr-for-selected="step-number" selected="{{stepNumber}}" activate-event="">

现在,您可以解析HTML代码并选择所有libraryDependencies += "org.scala-lang.modules" %% "scala-xml" % "1.0.3"代码。

textarea

如果您的HTML有效且想要执行多个XPath查询,那么这可能是更好的方法。另请查看this blogpost以获取有关import scala.xml.XML val htmlXml = XML.loadString(html) val textareaContents = (htmlXml \\ "textarea").text 的含义或如何使用Scala-XML库的更多信息。

正则表达式

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

\\