groovyxml解析(HTML slurping),can';I don’我的具体情况没有奏效

groovyxml解析(HTML slurping),can';I don’我的具体情况没有奏效,groovy,xml-parsing,screen-scraping,gpath,Groovy,Xml Parsing,Screen Scraping,Gpath,好的,这是我要找的 我想进入DOM并查找是属性的gdoc。我真的不想要“名字”,我想要“价值”。这意味着node.character.find{it['@id']=='2'}可以工作,这在我看来很像find..startsWith。类似,但startsWith不同,似乎对整个事情造成了影响。第五个条目是 如果您担心输入数据有问题: $curl—无声| grep线程|标题| wc-l 43 下面是一些示例输出,使用上面的curl | grep <a href="foo" id="thread

好的,这是我要找的

我想进入DOM并查找
是属性的gdoc。我真的不想要“名字”,我想要“价值”。这意味着
node.character.find{it['@id']=='2'}
可以工作,这在我看来很像find..startsWith。类似,但startsWith不同,似乎对整个事情造成了影响。第五个条目是

如果您担心输入数据有问题: $curl—无声| grep线程|标题| wc-l 43

下面是一些示例输出,使用上面的
curl | grep

<a href="foo" id="thread_title_705760">text</a>
<a href="foo" id="thread_title_753701">text</a>

我已经安装了Groovy 1.7.10。我可以换新的,不知道是否有用。

这是怎么回事

@Grab( 'org.ccil.cowan.tagsoup:tagsoup:1.2.1' )
import org.ccil.cowan.tagsoup.Parser

def gHTML = new URL( 'http://www.advrider.com/forums/forumdisplay.php?f=18' ).withReader { r ->
  new XmlSlurper( new Parser() ).parse( r )
}

def allLinks = gHTML.body.'**'.findAll { it.name() == 'a' && it.@id.text().startsWith( 'thread_title_' ) }
allLinks.each { link ->
  println "${link.text()} -> ${link.@href}"
}

如果您有任何问题,请告诉我:-)

@tedder42我相信这是深度优先:-)
@Grab( 'org.ccil.cowan.tagsoup:tagsoup:1.2.1' )
import org.ccil.cowan.tagsoup.Parser

def gHTML = new URL( 'http://www.advrider.com/forums/forumdisplay.php?f=18' ).withReader { r ->
  new XmlSlurper( new Parser() ).parse( r )
}

def allLinks = gHTML.body.'**'.findAll { it.name() == 'a' && it.@id.text().startsWith( 'thread_title_' ) }
allLinks.each { link ->
  println "${link.text()} -> ${link.@href}"
}