1

您好正在使用该HTTP Client步骤获取网站的源代码。我需要刮掉一行的特定部分。

示例行:<a href="....." ......>TEXT I WANT</a>

所以我想我会在 PDI 中使用 UDJC 并首先将文本块分成几行,String[] lines = code.split("\n+");然后循环遍历数组并使用 if 条件(即正则表达式检查)查看我是否有正确的行。

for(String line : lines){
        if line.matches(".*a href.*"){
            String outputString = code;
            break;
        }
    }

(我也在一个没有 PDI 的纯 Java IDE 中尝试这个)虽然我从来没有受到打击。知道如何解决这个问题吗?或者有没有更快更简单的方法来获得我想要的块?

4

1 回答 1

1

在类似的情况下,我会使用过滤步骤执行您想要的操作

转换步骤:

  1. 生成带有字段“dom”的行,输入字符串重要提示:限制应为 1 // pentaho 需要一个用于 https-step 的字段,以下步骤中不需要
  2. http-step,获取 html-dump 并为其设置一个字段名“html”或类似的名称(也许状态码字段会很好)//检查预览是否有数据
  3. filter-step: http includes "<a href" // 检查输出
  4. JavaScript-Step 使用您的正则表达式 *,定义一个带有您想要的输出的新字段

*用于正则表达式

于 2014-08-29T08:47:45.480 回答