[英]Difference between XmlService and importxml
在谷歌应用脚本中尝试将html解析为xml时,此代码:
var yahoo= 'http://finance.yahoo.com/q?s=aapl'
var xml = UrlFetchApp.fetch(yahoo).getContentText();
var document = XmlService.parse(xml);
将返回如下错误:
第20行出错:实体名称必须紧跟实体参考中的“&”。 (第13行,文件“”)
大概是因为html在第20行中不是xml兼容的。令我惊讶的是,当你在google工作表中执行相同的操作并提供xpath时,html将被解析为xml而不会出现问题:
=IMPORTXML("http://finance.yahoo.com/q?s=aapl,"//div[@class='title']")
将返回“Apple Inc.(AAPL)”。 我假设sheet函数有一些方法来清理html以使其符合xml。
提前致谢!
新的XmlService
无法进行宽松解析。 所以现在没办法。 但是你仍然可以使用支持lenient parse的旧Xml
服务(也许IMPORTXML
使用它)。 有效的代码:
var yahoo= 'http://finance.yahoo.com/q?s=aapl'
var xml = UrlFetchApp.fetch(yahoo).getContentText();
var document = Xml.parse(xml, true);
还有一个问题报告,关于在新的XmlService
解析: https : //code.google.com/p/google-apps-script-issues/issues/detail? XmlService
= XmlService
所以我建议你用旧的方式来关注这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.