Javascript XmlService和importxml之间的区别
尝试在google apps脚本中将html解析为xml时,以下代码: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。
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
中无法进行宽松解析:
所以我建议你们用老办法关注这个问题