2012-02-13 15 views
1

NekoHTMLパーサーを使用して、HTMLファイルを適切な形式のXML文書に解析しています。しかし、私はGPathを把握することができないので、「設定」文字列を持つテーブルを識別できます。テーブルヘッダーに一致する文字列が含まれているかどうかを確認する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で私を助けてくれますか?

EDIT:横の質問 - なぜ

println page.HTML.HEAD.TITLE 

印刷空の文字列は、それがタイトルを返すべきではないでしょうか?

答えて

1
  1. ヘッダ内の「設定」を使用してテーブルを取得するには、あなたが行うことができるはず:

    def settingsTableNode = page.BODY.TABLE.find { table -> 
        table.TBODY.TR.TH.text() == 'Settings' 
    } 
    
  2. pageポイントドキュメントのルートには、あなたが必要としません。 HTML

    println page.HEAD.TITLE 
    
関連する問題