我从 url 中提取一些标记并返回一个 scala.xml.Node ,如下所示......
def doGoogleSearch(query:String) : scala.xml.Node = {
val tmpUrl = "http://www.google.com?q="
val tmp = tmpUrl.concat(query)
val url = new URL(tmp)
val conn = url.openConnection
val sorce:InputSource = new InputSource
val neo = new TagSoupFactoryAdapter
val input = conn.getInputStream
sorce.setByteStream(input)
val markup = neo.loadXML(sorce)
input.close
return markup
}
接下来我想循环遍历标记内的每个子元素,到目前为止我所拥有的似乎只打印了 2x(然而这是返回的大量 html)。我在这里缺少什么?
def loopThroughChildren(markup:scala.xml.Node) : String = {
for (i <- 0 until markup.child.length) {
//println(??
}
return ""
}
先感谢您!
无论如何,这是一个适合您的递归函数:
def processNode(node: Node) {
if (node.isInstanceOf[Text]) println(node.text)
node.child foreach processNode
}
这将打印文档中所有文本节点的内容。如果你给它喂食,例如:
<html>
<head>
<title>Welcome</title>
</head>
<body>
<div>
<p>Foo</p>
</div>
</body>
</html>
它将产生:
Welcome
Foo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)