javascript之在谷歌应用程序脚本中解析 html 的最佳方法是什么
98°冷暖
阅读:849
2023-11-05 18:46:41
评论:0
var page = UrlFetchApp.fetch(contestURL);
var doc = XmlService.parse(page);
上面的代码在使用时会出现解析错误,但是如果我用已弃用的 Xml 类替换 XmlService 类,并设置宽松标志,它会正确解析 html。
var page = UrlFetchApp.fetch(contestURL);
var doc = Xml.parse(page, true);
这个问题主要是因为 html 的 javascript 部分没有 CDATA,解析器报错如下。
The entity name must immediately follow the '&' in the entity reference.
即使我删除了所有 <script>(.*?)</script>
使用正则表达式,它仍然会提示,因为 <br>
标签没有关闭。 有没有一种干净的方法可以将 html 解析为 DOM 树。
请您参考如下方法:
我遇到了这个完全相同的问题。我能够通过首先使用已弃用的 Xml.parse
来绕过它,因为它仍然有效,然后选择主体 XmlElement,然后将其 Xml 字符串传递到新的 XmlService.parse
方法:
var page = UrlFetchApp.fetch(contestURL);
var doc = Xml.parse(page, true);
var bodyHtml = doc.html.body.toXmlString();
doc = XmlService.parse(bodyHtml);
var root = doc.getRootElement();
注意:如果旧的 Xml.parse
已从 Google Scripts 中完全删除,则此解决方案可能无效。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。