我想每天加载一个网页(也许一天多次),解析其数据和电子邮件结果。
为了解析网页,我使用了 parse.gs
脚本,如下所示:
var url="http://http://example.com";
var page = UrlFetchApp.fetch(url).getContentText();
var XmlDoc = Xml.parse(page, true);
当我解析 XmlDoc
时,我只有 getElement/s 函数可用,并且我发现很难完成有效的工作。所以我想使用更高效的东西,比如 JQuery 选择器。
据我所知,我必须向项目添加一个 jquery.html 页面,例如:
<html>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
</html>
然后向 parse.gs
添加函数:
function doGet() {
return HtmlService.createHtmlOutputFromFile('jquery');
}
调用doGet
后,如何解析XmlDoc
?使用像 $('#content').html(XmlDoc);
这样的行不起作用。
最佳答案
作为 jquery 的替代方案,尝试完全在 apps-script 中构建 Xml 服务的功能。
A previous answer引入了一个实用程序函数,该函数通过搜索与搜索条件匹配的属性来定位 XML 文档中的元素。
getElementByVal( body, 'input', 'value', 'Go' )
... will find
<input type="submit" name="btn" value="Go" id="btn" class="submit buttonGradient" />
它还显示了一种可能的特化,用于搜索 <div>
的“id”属性s:
getDivById( html, 'tagVal' )
... will find <div id="tagVal">
如果您能够唯一地标识一个元素,如上面的示例所示,一个简单的脚本就可以轻松地获取该元素:
var url="http://http://example.com";
var page = UrlFetchApp.fetch(url).getContentText();
// Get <div id="content">
var contentDiv = getDivById( pageDoc.getElement().body, 'content' );
...
关于javascript - Google Apps 脚本、UrlFetchApp 和 JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16862134/