2012-03-19 8 views
1

簡単に見えるPerlスクリプトを書こうと思っていますが、なんとか私はそれで迷っています。XMLファイルのフィルタファイルで設定された要件に基づいて、HTMLファイルの属性を保存するにはどうすればよいですか?

私はHTMLファイルとfilter.txtファイルを持っています。

HTMLファイルには、私は、ファイルfilter.txtの内容を検索したい

<tr><td>DATA_START</td><td align="center">77777</td><td align="center">0</td><td align="center">0</td></tr>..... 

のような内容を持っています。そのコンテンツがある場合は、その属性AとBを取得します。この場合、filter.txtの一部であり、HTMLファイル内にある場合、Aは7777、Bは0です。

この結果はXMLファイルを作成します。

+2

フィルタファイルはどのように見えますか? XML出力はどのように見えますか?あなたは何を試しましたか、どの問題が遭遇しましたか?どのステップで助けなしに立ち往生していますか?この情報がなければ質問は不完全です。 – daxim

答えて

1

open filter.txtとslurp HTMLファイルをスカラーに変換します。次にパターンのhtmlをgrepし、単純なregexpを使って行を解析します。

注意:これはこのHTML構造のみであり、固いものではありません。より堅牢なアプローチのためにMarpaを使用してください。

use Data::Dumper; 
$html =~ s#\s*</tr>\s*#</tr>\n#gis; 
$html =~ s#\s*<tr[^>]*>\s*#\n<tr>#gis; 
while(<FILTER>){ 
    my $pattern = $_; 
    my @datalines = grep {/$pattern/} $html; 
    foreach my $dataline (@datalines){ 
    my (@data) = $dataline =~ m#<td[^>]*>(.*?)</td>#gis; 
    die Dumper(@data,$dataline); 
    } 
} 
関連する問題