私はPerl(Windows 7のStrawberry Perl v5.12.3)の新人です。繰り返しHTML形式の作業を手助けするスクリプトを作成しようとしています。これらのファイルは今後手作業で編集する必要があり、人間にやさしくなりたいので、HTMLパッケージ(HTML :: TreeBuilderなど)を使用して処理した後、HTML::PrettyPrinterを使用して結果をファイルに書き出しています。これはすべてうまく動作し、PrettyPrinterの出力は非常に素晴らしく人間が読めるものです。しかし、PrettyPrinterは自己終了タグをうまく扱っていません。基本的には、スラッシュをHTML属性として扱うようです。Perl:HTML :: PrettyPrinter - 自己終了タグの処理
<img />
にPrettyPrinter戻り:入力などで
<img /="/" >
は、私はバックスラッシュを削除する正規表現で前処理よりも、この他のを避けるために何かできることはありますか?
ないことが参考になることを確認、しかし、ここではかなりの印刷のための私の設定です:
my $hpp = HTML::PrettyPrinter->new('linelength' => 120, 'quote_attr' => 1);
$hpp->allow_forced_nl(1);
my $output = new FileHandle ">output.html";
if (defined $output) {
$hpp->select($output);
my $linearray_ref = $hpp->format($internal);
undef $output;
$hpp->select(undef),
}
感謝。しかし、どちらも解決策ではありません。あなたが示唆したタブインデントオプションでさえ、 'print $ h-> as_HTML'は人間が決して奇妙な方法で一緒に実行します(例えば、すべてのh2が前のpタグと同じ行で一緒に実行されます) 。したがって、PrettyPrinterの使用。私はあなたがPrettyPrinterに関する私の模範的な例を誤解したと思います。私のimgタグには何も問題はありません。 - PrettyPrinterは_all_自己クローズタグを標準タグとして、/プロパティを "/"に設定して印刷します。 '
'は「
」 – SenatorForLife
になりました。モジュールの修正方法に関する記事を更新しました。これが助けてくれることを願って – Dimanoid
これは非常にきれいに動作するようです、ありがとう!私は間違いなく、自分自身でハックを見つけたPerlの初心者です。他のStrawberry Perlユーザーには、cpanm:C:\ strawberry \ perl \ site \ lib \ HTML \ PrettyPrinter.pm – SenatorForLife