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 中完全删除,则此解决方案可能无效。


标签:JavaScript
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

全民解析

全民解析

关注我们