gpt4 book ai didi

javascript - XmlService 和 importxml 的区别

转载 作者:数据小太阳 更新时间:2023-10-29 02:39:49 26 4
gpt4 key购买 nike

当试图在谷歌应用程序脚本中将 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)”。我假设 sheets 函数有一些清理 html 以使其与 xml 兼容的方法。

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

提前致谢!

最佳答案

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 中有关于无法宽松解析的问题报告:https://code.google.com/p/google-apps-script-issues/issues/detail?id=3727

所以我建议你用老方法,关注这个问题。

关于javascript - XmlService 和 importxml 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32911860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com