尝试在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行,文件"")
大概是因为html在第20行中不是xml兼容的。令我惊讶的是,当你在google工作表中执行同样的操作并提供xpath时,html将被解析为xml而没有问题:< / p>
=IMPORTXML("http://finance.yahoo.com/q?s=aapl,"//div[@class='title']")
将返回&#34; Apple Inc.(AAPL)&#34;。我假设sheet函数有一些清理html的方法,使其符合xml。
提前感谢!
答案 0 :(得分:1)
新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?id=3727
所以我建议你用旧的方式来关注这个问题。