加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何遍历在单个scala.xml.Node中找到的子项列表

发布时间:2020-12-16 10:07:20 所属栏目:安全 来源:网络整理
导读:我从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
我从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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读