【问题标题】:The reference to entity "F" must end with the ';' delimiter. [replacing & with & did not solve the issue]对实体“F”的引用必须以“;”结尾分隔符。 [用 & 替换 & 没有解决问题]
【发布时间】:2017-09-13 14:38:52
【问题描述】:
   var url = 'http://stockcharts.com/def/servlet/SC.scan?s=TSAL[t.t_eq_s]![T.E_EQ_N]![T.E_NE_O]![as0,20,tv_gt_40000]![th0_gt_am1,253,th]&report=predefall';
   var text = UrlFetchApp.fetch(url).getContentText(); 
   var xml = XmlService.parse(text);

对为什么我收到标题中提到的错误消息有任何想法吗? 我已经用 '&' 替换了 '&'在“网址”中。 我怀疑它可能是 '[', ']' 和/或 '!'这就是问题所在。 我已阅读有关此类问题的其他帖子,但自己无法解决问题 - 希望有人可以帮助我。

更新 根据 Michael Kay 的意见,我回去阅读了更多帖子——尤其是这些:

Character encoding issue when using Google Apps Script to extract data from web page

What is the best way to parse html in google apps script

-并决定采用更简单的解决方案(因为我只需要网页中的符号)。所以我的代码最终看起来像这样:

var url = 'http://stockcharts.com/def/servlet/SC.scan?s=TSAL[t.t_eq_s]![T.E_EQ_N]![T.E_NE_O]![as0,20,tv_gt_40000]![th0_gt_am1,253,th]&report=predefall';
var text = UrlFetchApp.fetch(url).getContentText();
text = text.substring(text.search('<tbody>'),text.search('</tbody>'));
var srchstr = 'symbol=';
while (text.search(srchstr) > -1){    
  var start = text.search(srchstr) + srchstr.length;
  text = text.substring(start, text.length);
  var end = text.search('"');
  var symbol = text.substring(0, end);
  Logger.log(symbol);
}

【问题讨论】:

    标签: xml google-apps-script


    【解决方案1】:

    我认为问题不在于 URL:而是通过取消引用 URL 检索到的文本(getContentText() 的结果),您没有向我们展示。

    【讨论】:

    • 感谢迈克尔的意见 - 我设法想出了一个解决方案(见我更新的帖子)。
    • 这是一个非常糟糕的解决方案。 XML 解析器告诉您输入是无效的 XML,您已经通过绕过 XML 解析器解决了问题。充其量我会称之为解决方法。当您有不良数据时,您需要找出它的来源并从源头进行修复。
    猜你喜欢
    • 2011-07-05
    • 2011-09-22
    • 2014-05-26
    • 2010-12-29
    • 2020-07-14
    • 1970-01-01
    • 2012-12-16
    • 2019-10-04
    相关资源
    最近更新 更多