我从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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。