我正在使用NekoHTML解析器将HTML文件解析为格式良好的XML文档。但是我无法弄清楚GPath,因此我可以识别具有“设置”字符串的表。
def parser = new org.cyberneko.html.parsers.SAXParser()
parser.setFeature('http://xml.org/sax/features/namespaces', false)
def html =
'''
<html>
<title>Hiya!</title>
</html>
<body>
<table>
<tr>
<th colspan='3'>Settings</th>
<td>First cell r1</td>
<td>Second cell r1</td>
</tr>
</table>
<table>
<tr>
<th colspan='3'>Other Settings</th>
<td>First cell r2</td>
<td>Second cell r2</td>
</tr>
</table>
'''
def slurper = new XmlSlurper(parser)
def page = slurper.parseText(html)
在此示例中,应选择第一个表,以便我可以迭代其中的其他行值。有人可以帮我解决这个问题吗?
编辑:附带问题 - 为什么
println page.HTML.HEAD.TITLE
打印一个空字符串,不应该返回标题吗?
答案 0 :(得分:1)
要获得标题中包含“设置”的表格,您应该可以:
def settingsTableNode = page.BODY.TABLE.find { table ->
table.TBODY.TR.TH.text() == 'Settings'
}
page
指向文档的根目录,因此您不需要HTML
。你需要做的就是:
println page.HEAD.TITLE