从mule中的有效负载中提取特定内容

时间:2015-08-23 12:00:50

标签: mule payload

   <script type="text/javascript" src="http://xyz.js"></script>
<script type="text/javascript" src="http://abc.js"></script>

我想从有效负载中提取这些Java脚本值(我的有效负载非常大。这里,我显示了需要从有效负载中获取所需的内容)

我想从有效负载中获取所有js值(此处计数为2但在其他情况下可能更多)并逐个检索这些值以用于其他功能。

我不知道如何从有效负载中获取特定内容,如果count超过1,那么如何逐个处理其他功能的所有计数。

请建议

3 个答案:

答案 0 :(得分:0)

正如Tyrone建议的那样,您可以转换HTML into a DOM object(可能来自Mule组件),这样您就可以检索要下载的JS文件的所有URL。拥有这些网址后,您可以使用与discussed here类似的方法。

答案 1 :(得分:0)

如果要提取所有脚本元素的URL(src属性的值),请使用此正则表达式提取它们,\<script[^>]*src="([^\"]*)"[^>]*\>

<expression-component doc:name="Expression"><![CDATA[import java.util.regex.*;
import java.util.*;

Matcher myMatcher = Pattern.compile("\\<script[^>]*src=\"([^\\\"]*)\"[^>]*\\>").matcher(payload);

List urls = new ArrayList();
while (myMatcher.find()) {
    urls.add(myMatcher.group(1));
}

payload = urls;]]></expression-component>

答案 2 :(得分:0)

您可以使用分割器,使用&#34; \ n&#34;分割第一个网站的内容(列出所有JS的内容)。表达然后使用每条消息检查&#34; JS&#34;有没有,然后哪个消息有这些JS你可以在列表中捕获它们(使用groovy或java组件)