Namazu-devel-ja(旧)


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

Re: filter/macbinary.pl試用結果



臼田です

knok@xxxxxxxxxxxxx wrote:
> 
> At Sat, 10 Jan 2004 16:05:04 +0900,
> Tadamasa Teranishi wrote:
> > 9. Namazu のテスト (スコア: 19)
> > 著者: 不明
> > 日付: Fri, 09 Jan 2004 02:08:42
> > Namazu は手軽に使えることを第一に目指した日本語全文検索システムです。こ
> > のファイ>
> > ルはテスト用です。 <o:p></o:p> <![if !supportEmptyParas]>
> > <![endif]><o:p></o:p>
> > test@xxxxxxxxxx<o:p></o:p>
> > /home/teranisi/src/HEAD/namazu/tests/data/ja-mac/word2001.htm (4,992
> > bytes)
> > 
> > Office で再編集できるように埋め込まれた Office 固有のマークアップが
> > 削除できていないようです。
> > # だが、これは HTML としてみた場合に正しいのか!?
> 
>   なんだか namespace を利用した XML みたいですね。きちんと定義を記述し
> た上であれば XML 的には適正なんじゃないかと思います。

tests/data/ja-mac/word2001.htmの上の方についているxml部分は
ちゃんと<!--[if gte mso 9]><xml>と</xml><![endif]-->に
かこまれてhtmlとしてはコメントになっているのですが
表示で残ってしまっているタグはコメント外の通常のhtml部分の中に
入っているから消えずに残っているようですね。
一般的なブラウザでは未知のタグは無視するようになっているので
表示上は出てこないのですね。

ブラウザの仕様を期待して拡張タグを使う行為を正しいというかどうかは別
として、
インデックスデータとしてはゴミデータ(と思われる)となるでしょうから
ブラウザの表示の動作と同様に、未知のタグは全部消してしまうのがよい
はずです、このタグはfilter/html.plのremove_html_elements()でマッチ
せずに残ってしまうようですね。

# remove all HTML elements. it's not perfect but almost works.
sub remove_html_elements ($) {
    my ($contref) = @_;

    # remove all elements
    $$contref =~ s!</?([A-Z]\w*)(?:\s+[A-Z]\w*(?:\s*=\s*(?:(["']).*?\2|[\w\-.]+))?)*\s*>!element_space($1)!gsixe;

}
":"や"["がタグの中に入っているのでマッチしないのかなと思うのですが
うかつに触るとエンバグしそうな正規表現なのでどなたかアドバイスを。

臼田幸生