Namazu-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

質問 : タグ終了記号直前に NUL(0x00) が付加されている場合の対処法



Namazu 2.0.4 for win32、kakasi-2.3.2, NKF32.exe(Ver11.7)、
ActivePerl build522(perl 5.005_03)を使用して、htmlファイルの
インデックス作成を試みております。

対象となるHTMLファイルが、標記のとおり変なことになっておりまして、
インデックス作成がどうも上手くいきません。対象のHTMLファイルを
編集して、問題のNULを削除してやれば、mknmzした結果、しっかりと
インデックス作成が行われるのですが、そうするとファイルの更新日時
が塗り替えられてしまうため、できればmknmz時、HTMLドキュメントを
処理する際に、NULをうまく処理して、ソースのHTMLファイルを更新せずに
インデックス作成を正常に行いたいのですが、どうすればよろしい
でしょうか。

NULが付加されているのは、ファイル中で1箇所のみで、具体的には
以下のようになっています。

<BODY BGCOLOR="#ffffff" LINK="#0000ff" ALINK="#ff0000" VLINK="#ff00ff" >

上のタグで、要素間にはスペース(0x20)が挿入されているのですが、
VLINK="#ff00ff"とタグ終了記号の間にだけNUL(0x00)が挿入されて
いるのです。

#実はインデックス化しようと試みているHTMLファイルはISP提供の掲示板
#の記事ファイルでして、どうもISP側の不具合くさいのですが。

当方では、html.plで、html::escape_lt_gt($contref); の直前に

sub patch ($) {
    my ($contref) = @_;
    $$contref =~ s/(<BODY[^\x00]+)\x00/\1/g;
}

みたいなサブルーチンを置いて試してみたのですが、うまくいきません
でした。

無知をさらして恥ずかしいんですが、どうにも手詰まりです。
有識者の方のお知恵を拝借できませんでしょうか。

**************
西原 良昭
nisihara@xxxxxxxxxxxxx