2012-02-13 38 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嗎?

編輯:方的問題 - 爲什麼

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 
    
相關問題