2014-01-19 41 views
2

我試圖通過類在谷歌網站來解析HTML元素,我的代碼是:解析值?

function doGet(){ 

    var html = UrlFetchApp.fetch ('http://indicadoresdeldia.cl/').getContentText(); 
    var doc = XmlService.parse(html); 
    var html = doc.getRootElement(); 
    var menu = getElementsByClassName(html, 'span3 utm')[0]; 
    var output = XmlService.getRawFormat().format(menu); 
    return HtmlService.createHtmlOutput(output); 

} 

Ween的我運行的代碼出現NEXTë錯誤信息的ReferenceError:「getElementsByClassName方法」沒有定義。

我試圖部署下一個頁面的例子:https://sites.google.com/site/scriptsexamples/learn-by-example/parsing-html

任何想法?

在此先感謝您的幫助。

+0

看着你裁判,「getElementsByClassName方法」的網站,你應該在你的項目中的功能,請參閱https://sites.google.com/site/scriptsexamples/learn逐示例/解析-HTML#TOC-getElementsByClassName方法 –

回答

1

據該網站,你應該直接與其功能複製到您的項目(提供有源代碼),然後打電話給他們。這將緩解你的問題每個人。

0

來源:https://sites.google.com/site/scriptsexamples/learn-by-example/parsing-html

function getElementsByClassName(element, classToFind) { 
    var data = []; 
    var descendants = element.getDescendants(); 
    descendants.push(element); 
    for(i in descendants) { 
    var elt = descendants[i].asElement(); 
    if(elt != null) { 
     var classes = elt.getAttribute('class'); 
     if(classes != null) { 
     classes = classes.getValue(); 
     if(classes == classToFind) data.push(elt); 
     else { 
      classes = classes.split(' '); 
      for(j in classes) { 
      if(classes[j] == classToFind) { 
       data.push(elt); 
       break; 
      } 
      } 
     } 
     } 
    } 
    } 
    return data; 
}