Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript XmlService和importxml之间的区别_Javascript_Xml_Xpath_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript XmlService和importxml之间的区别

Javascript XmlService和importxml之间的区别,javascript,xml,xpath,google-apps-script,google-sheets,Javascript,Xml,Xpath,Google Apps Script,Google Sheets,尝试在google apps脚本中将html解析为xml时,以下代码: var yahoo= 'http://finance.yahoo.com/q?s=aapl' var xml = UrlFetchApp.fetch(yahoo).getContentText(); var document = XmlService.parse(xml); 将返回如下错误: 第20行错误:实体名称必须紧跟实体引用中的“&”。(第13行,文件“”) 大概是因为第20行中的html在某种程度上不符合xml。

尝试在google apps脚本中将html解析为xml时,以下代码:

var yahoo= 'http://finance.yahoo.com/q?s=aapl'
var xml = UrlFetchApp.fetch(yahoo).getContentText(); 
var document = XmlService.parse(xml);
将返回如下错误:

第20行错误:实体名称必须紧跟实体引用中的“&”。(第13行,文件“”)

大概是因为第20行中的html在某种程度上不符合xml。让我惊讶的是,当您在google sheets中执行相同的操作并提供xpath时,html将被解析为xml而不会出现问题:

=IMPORTXML("http://finance.yahoo.com/q?s=aapl,"//div[@class='title']")
将返回“苹果公司(AAPL)”。我假设sheets函数有一些清理html的方法,使其与xml兼容

  • 你认为会是这样吗
  • 如果是的话,您是否知道我如何在应用程序脚本中调整xml解析器,使我可以从yahoo finance访问html并将其视为xml

提前谢谢

New
XmlService
无法进行宽松解析。所以现在不行。但您仍然可以使用旧的
Xml
服务,该服务支持宽松的解析(也许
IMPORTXML
也可以使用它)。有效的代码:

var yahoo= 'http://finance.yahoo.com/q?s=aapl'
var xml = UrlFetchApp.fetch(yahoo).getContentText(); 
var document = Xml.parse(xml, true);
还有一个问题报告是关于在新的
XmlService
中无法进行宽松解析:

所以我建议你们用老办法关注这个问题