1

こんにちは、HTTP Clientステップを使用して Web サイトのソース コードを取得しています。1 行の特定の部分をかき出す必要があります。

例の行:<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 に答える