1

我想每天加载一个网页(可能一天更多次),解析它的数据和电子邮件结果。

要解析网页,我使用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?使用行 like$('#content').html(XmlDoc);是行不通的。

4

1 回答 1

1

作为 jquery 的替代方案,尝试完全在应用程序脚本中构建 Xml 服务的功能。

先前的答案引入了一个实用函数,该函数通过搜索与搜索条件匹配的属性来定位 XML 文档中的元素。

getElementByVal( body, 'input', 'value', 'Go' )  

... will find
  <input type="submit" name="btn" value="Go" id="btn" class="submit buttonGradient" />

它还显示了一种可能的特化,用于搜索<div>s 的“id”属性:

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' );
...
于 2013-06-01T02:20:34.893 回答