[PHP-users 28967] Re: 特定タグの文字を抽出するには
K.Nakatsuka
tanpoko @ wk9.so-net.ne.jp
2006年 4月 11日 (火) 02:09:37 JST
中司と申します。
On Tue, 11 Apr 2006 00:22:13 +0900
大塚 哲治 <goroneko @ pop17.odn.ne.jp> wrote:
> <tr>
> <td nowrap>
> 2006-2-4
> </td>
> <td>
> 芸能人A
> </td>
> <td><a href="/hoge/020492">題名A</a></td>
> <td>50 MB</td>
> <td>
> <span>
> <img border="0" src="http://hoge.com/hoge.gif"></span>
> </td>
> <td style="color: blue;"> </td>
> </tr>
> ・・・上記の内容が同じように繰り返す・・・
> ---
> この文字列から配列に
> human["芸能人A"]="題名A"
> human["芸能人B"]="題名B"
気分転換にチャレンジしてみました。
# お見せするのは恥ずかしい出来なのですが参考になれば (^^;
# 識者の方からもっとスマートな方法が提示されると思います。
(1) 実行結果
$> sed -f test.sed test.txt | awk -f test.awk | sed 's/<\/a><\/td>//'
human["芸能人A"]="題名A"
human["芸能人ABC"]="題名DEF"
(2) test.sed の中身
/^<td>$/{
n
/^<span>$/{
d
}
p
}
/^<td><a/{
p
}
d
(3) test.awk の中身
{
if( "<td><a" == $1 ) {
# print
str1 = substr($0,28);
printf ("\""); printf str1; printf ("\"\n");
}
else if( "<td>" != $1 ){
printf("human[\""); printf $2; printf("\"]=");
}
}
--
K.Nakatsuka
(tanpoko @ wk9.so-net.ne.jp)
PHP-users メーリングリストの案内