繁体   English   中英

XmlService和importxml之间的区别

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

  • 你认为可能是这种情况吗?
  • 如果是的话,你是否知道如何在应用程序脚本中调整xml解析器,以便我可以从yahoo finance访问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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM