【发布时间】:2021-02-26 04:33:16
【问题描述】:
我有以下函数试图将网页转换为 xml,所以我可以开始从表等中提取一些数据。
function getWebpageContent() {
var url = "https://training.gov.au/Training/Details/BSBCRT501";
var xml = UrlFetchApp.fetch(url).getContentText();
var document = XmlService.parse(xml);
Logger.log(document);
}
我收到此错误:
Exception: Error on line 170: The entity name must immediately follow the '&' in the entity reference.
getWebpageContent @ Code.gs:6
当我在该网页中搜索“&”符号时(假设 XmlService 混淆了某种 html 代码的“和”符号并引发错误)我只能找到一个隐藏的。而且不知道如何规避它。
有什么方法可以避免该错误并在 Apps 脚本中以 Xml 格式获取网页信息?
【问题讨论】:
-
当我看到你的 URL 的 HTML 时,似乎 HTML 不是 XML 数据。在这种情况下,无法直接使用
XmlService.parse解析 HTML 数据。我认为这样会发生这样的错误。但是,不幸的是,从你的问题来看,我无法理解你的目标。我可以问一下您期望的输出吗?因为来自Any way to dodge that error and get the webpage info as Xml in Apps Script?,我无法理解您期望的输出值。我为此道歉。根据您的附加信息,我想考虑实现您的目标的解决方法。 -
感谢@Tanaike - 我的目标是返回一些表格
元素以显示在电子表格(或文档)中。我实际上从未使用过 xmlservice,但它听起来像是检索元素的最简单方法。我可以将页面的 html 作为字符串抓取,但不确定如何检索单个元素。如果它不能像 xml 那样工作,那么任何建议都会很棒。
-
进一步澄清:表格中有许多具有不同信息的网址。我希望能够输入 url,检索表格数据,将其显示在电子表格中。我可以使用谷歌表格公式,但它并不完美,所以认为应用程序脚本可能会更好。
-
感谢您的回复。我不得不为我糟糕的英语水平道歉。不幸的是,从您的回复中,我仍然无法理解您期望的输出。可以问一下具体情况吗?
-
我想要从这个页面 (training.gov.au/Training/Details/BSBCRT501) 的输出是“元素和性能标准”表中的每个
。我想将它保存为一个数组,然后重新格式化到我的电子表格中。我可能只是在电子表格公式中使用 IMPORTXML。
标签: javascript html xml parsing google-apps-script