[英]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.