var page = UrlFetchApp.fetch(contestURL);
var doc = XmlService.parse(page);
上面的代码在使用时会出现解析错误,但是如果我用已弃用的 Xml 类替换 XmlService 类,并设置了 lenient 标志,它就会正确解析 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
method:
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 脚本中完全删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)