-->

GPATH找到,如果一个表头包含匹配的字符串(GPath to find if a table he

2019-10-16 13:40发布

我解析HTML文件到使用NekoHTML解析器一个良好的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)

在此示例中,第一表应该被选择为使得我可以通过在它的其他列值进行迭代。 有人可以帮我这个GPATH好吗?

编辑:方的问题 - 为什么

println page.HTML.HEAD.TITLE

打印一个空字符串,它不应该返回的称号?

Answer 1:

  1. 要获得头中具有“设置”的表格,你应该能够做到:

     def settingsTableNode = page.BODY.TABLE.find { table -> table.TBODY.TR.TH.text() == 'Settings' } 
  2. page指向文档的根,所以你不需要HTML 。 所有你应该需要做的是:

     println page.HEAD.TITLE 


文章来源: GPath to find if a table header contains a matching string