繁体   English   中英

为什么我的Google App脚本出现系统标识符错误

[英]Why am I getting a system identifier error with my google app script

我正在使用以下Google Apps脚本进行屏幕抓取。

function getLinks(html) {
  var doc = XmlService.parse(html);
  var html = doc.getRootElement();
  var table = getElementsByClassName(html, "headLinks")[0];
  var output = '';
  var linksInMenu = getElementsByTagName(table, 'a');
  for(i in linksInMenu) output+= XmlService.getRawFormat().format(linksInMenu[i])+'<br>';
  return HtmlService.createHtmlOutput(output);
}

第一行代码: var doc = XmlService.parse(html) ; 引发以下错误:

Error on line 2: The system identifier must begin with either a single or double quote character

我相信错误消息告诉我html系统ID周围没有单引号或双引号。 html的第2行如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

我不确定系统标识符是什么意思。 有没有人遇到过这个问题,您是否能够提出解决方法或解决方案。

Google Apps脚本代码来自Romain Vialard的: 网站

parse方法采用xml参数。 XML的第一行通常以XML声明,版本和编码信息开始。 HTML和XML都可以具有以<!DOCTYPE开头的系统标识符,该标识符位于第二行。 系统标识符的可接受语法为:

<!DOCTYPE root-element PUBLIC "FPI" ["URI"] [ 
<!-- internal subset declarations -->
]>

要么

<!DOCTYPE root-element SYSTEM "URI" [ 
<!-- internal subset declarations -->
]>

我使用硬编码数据运行了一个测试功能:

function testXML_Parse() {

  var theXML_Declaration = '<?xml version="1.0" encoding="UTF-8"?>';
  var theXML = "<note><to>Someone</to><from>Anyone</from><heading>Reminder</heading>" +
    "<body>Don't forget me this weekend!</body></note>";

  var theSysIdentifier = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
  var doc = XmlService.parse(theXML_Declaration + theSysIdentifier + theXML);

  Logger.log('doc: ' + doc);
}

我使用了与您给出的完全相同的第二行,没有任何错误。

没有将所有数据传递到html变量中,就存在无法测试的未知数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM