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

Extract particular content from payload in mule

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

我想从 payload 中提取这些 Java 脚本值(我的 payload 很大。在这里,我显示了需要从 payload 中提取的所需内容)

我想从 payload 中获取所有的 js 值(这里的计数是两个,但在其他情况下可能更多)并一个一个地检索这些值以用于其他功能。

我不知道如何从有效载荷中获取特定内容,如果计数大于 1,也不知道如何为其他功能一一处理所有计数。

请指教

正如 Tyrone 所建议的,您可以将 HTML into a DOM object (perhaps from a Mule component) and that way you are able to retrieve all the URLs for JS files that you wish to download. Once you have those URLs, you can use a similar approach to that discussed here.

如果要提取所有脚本元素的 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>

您可以使用拆分器,使用“\n”表达式拆分您的第一个站点(其中列出了所有 JS)的内容,然后使用每条消息检查 "JS" 是否存在以及那么无论哪条消息包含这些 JS,您都可以将它们捕获到列表中(使用 groovy 或 java 组件)