2

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)

このサンプルでは、​​最初のテーブルを選択して、その中の他の行の値を反復処理できるようにする必要があります。誰かがこのGPathを手伝ってくれませんか?

編集:副次的な質問-なぜですか

println page.HTML.HEAD.TITLE

空の文字列を出力しますが、タイトルを返す必要はありませんか?

4

1 に答える 1

1
  1. ヘッダーに「設定」を含むテーブルを取得するには、次のことができるはずです。

    def settingsTableNode = page.BODY.TABLE.find { table ->
      table.TBODY.TR.TH.text() == 'Settings'
    }
    
  2. pageはドキュメントのルートを指しているため、HTML. あなたがする必要があるのは、次のことだけです。

    println page.HEAD.TITLE
    
于 2012-02-13T12:37:39.550 に答える