既存のHTMLファイルをちょっとだけ書き換るために、Perl で JavaScript または jQuery 風セレクタで(=正規表現でいちいち探さないで) DOM を操作する事ってできるのかな?と思って調査した結果。モジュール候補をリストアップしただけの未テスト。
jQuery ライクに DOMを抽出、操作できる Mojo::DOM
書き換えもできるけれど他の部分には手をつけない(と書いてある)。
https://metacpan.org/pod/Mojo::DOM
ネイティブ JavaScript ライクに DOMを抽出、操作できる HTML::DOM
書き換え(オブジェクト変更後に書き出し)もできるけど、結果がどうなるか未テスト。
改行つぶされたりするとそれはそれでやりにくいからね。ドキュメントをざっと見て普通に考えるとあまり期待できない。
https://metacpan.org/pod/HTML::DOM
Perl で HTML をパースする(参考にした情報)
調査にあたり、下記のページの情報が役に立ちました。
Parsing HTML with Perl – O’Reilly Radar
以下は、このページ内で紹介されている関連情報。
タグ、その中の情報を抽出したいなら以下が便利。
https://metacpan.org/pod/HTML::TokeParser::Simple
https://metacpan.org/pod/HTML::TableExtract
XPath でノードを抽出する
https://metacpan.org/pod/HTML::TreeBuilder::XPath
Parse でエラーが出るなら前処理に役に立つかも
https://metacpan.org/pod/HTML::Tidy
HTMLがXML形式なら(ストリーム型パーサーだけど XPath も使える)
(荒野で拾ってきたXHTMLには多分使えない。)
https://metacpan.org/pod/XML::Twig