在Apigee网关上为特定值刮取HTML响应

时间:2014-06-02 10:54:33

标签: apigee

有没有人确定一种很好的方法来抓取HTML响应,主要使用HTML5和非XML兼容格式,使用Apigee网关获取特定值。

也就是说,如果我得到以下的回复,

<input name="a" value="a1">
<input name="b" value="b1">
<input name="c" value="c1">
<input name="d" value="d1">

我可以返回a和b的值吗?

由于这是html而不是XML Strict,Apigee的XPATH不起作用。

或者,是否有推荐的方法允许在网关上进行DOM解析?

2 个答案:

答案 0 :(得分:1)

尝试基于您的偏好的java或javascript或py策略中的正则表达式。您可以将整个响应有效内容分配给变量作为字符串。然后,您可以执行字符串操作(如正则表达式匹配)以提取HTML文本的特定部分。

对于XML响应有效负载,您可以使用XSLT和XPATH表达式。

答案 1 :(得分:1)

您可以使用NodeJs路由在网关上执行此操作。由于Apigee Edge支持开箱即用的NodeJ,因此您可以使用NPM来玩DOM。我个人最喜欢的是Cheerio [https://github.com/cheeriojs/cheerio]。 BTW Cheerio也基于JQuery

 var cheerio = require('cheerio'),
  $ = cheerio.load('<h2 class="title">Hello world</h2>');

  $('h2.title').text('Hello there!');
  $('h2').addClass('welcome');

  $.html();
 //=> <h2 class="title welcome">Hello there!</h2>