ちょっとだけ必要にかられてごくごく単純な 
HTML 解析ライブラリを作ってみました. 
まだあまりテストをしていませんし
リンクのチェックツールや Web ロボットを
作るベースにしようと思って書いたので
変な癖があったりするかも知れません. 

テストをしてもらえるとありがたいです. 

で, 使い方はといいますと…… 見苦しいコードを読んでください(^_^;)
でもちょっとだけ書いておくと, たとえば

  f = open('file_name', 'r')
  begin
    t = SimpleHtmlParse.new(f) {|part, name, begin_end, attribute|
      if name
        nil
      else
        part
      end
    }
  ensure
    f.close
  end

とすることで t.content に「タグ」を取り除いた
残りのテキストの配列が生成されます. 

--

 やまだ あきら (akira / linux.or.jp or akira / nurs.or.jp)
 ☆ Linux Doc-CD プロジェクト <URL:http://www.linux.or.jp/Doc-CD/> ☆

begin 644 SimpleHtmlParse.tar.gz M'XL("(>!434"`U-I;7!L94AT;6Q087)S92YT87(`[1IK4UO'U5_1KU@DXGME MA!Z\W!`A2FS%]B38&9NF'R39$7`!U;)$[[VRH8;^%SQ[T]8F8SLD@ZG!CT`` M@R.<26IGFDS3-&GB&*?)X'2FDYEV>L[NWH>N!,9IG`^=NYF@N[OGM6?/GL>N MC^5.C>25@_JI_,M955,BNYY"(ZW1O6UM9!<A\-7*?EMB4?8K6I20]K;FUI9H MM*TM1DBLN26Z=Q=IV_43M)*F9U5"=F5/YM3L-G"_RI>&=OW_M6.N_==8?QCZ M(]@/JWW_.X]8--K>VKK5_L=:]K:T\_UOWMO:#H9"8NW-L99=).KM_U-O`5^` M['ES]=*]/>1@;\]+Y(W-&^O&5P8U[L+?!SZ<;C@TT$&J[2)TFL3"[#\2>_;9 MGT6B;9'H7A)]MB/:WM'60I@^27)TA#0`C7W%D3$U-S2L$WE?D,$+@+'LJ>Q` M-DRZ\WG"`#2B*IJBGE8&PH2Q?_/;M8_?.4_7Z/KD7>.Z<6GR'EVA\_0UNDQ7 M*;WUW>H4W;SQ9_H`?B_3K^A#ND%OP-<RG14$C`?&(^.B<=/XG;%@7)B<HY\O M7)[_C*Z27RI]Q/C:^!B&5^CF'_\!F&7D`SBW-\M_H(O07:;KR(9>`*;GZ=_@ MZR]T5H8.!0DN@!QE>IU^2M<`>P&^`"%(IT+`F$!OA?Z>W@D1.@U2;5YYBZZM M7EF;=`B"/+\&.JOT$5VR>`.'&S,;L_-T!H9OT8MT:7&6TJ6KB_^B4V]_`&R6 M@/D&2#9#OZ2OD8ZF("S3IRJ_+N54A4@G^XN%TY+/UY_/:AIQG6\?(0/*(,D5 M<GHNF\_]1I%SQ1#IRVH*Z22%7#[HPR-9*N05P,WIBIK5BVJ7CY]4-9O3%+E; M'2J=4@IZ4E6+:HA(VG"QE!\@?0KIS^;SR@`YD].'25^^V']2XN24PH"/??Q< MS^EYP:DN0.*]AWI?2B8F;\8C_(L#94OZ<%&UH7J2O=WD<'=/LM/?S:;\9-^1 MP[W)P[V=_LF;?H%U4AD[4U0'M)IX+XK)FI@#BM:OYD;T7+'`D0FIQ-YO`]0D MH!;[BGIMQD?95$TLL'M3%8CTTJ'#+Y*CR5<Z_3W=^Y-^<O!H\@4GN-@C_$'P MY[N/):M@8.=UV!D`2V4`B"N=G5?8YB`Y.P[?>H@4LJ<4V'1E*%<X`7L3(EE= M5W-])5T9)V*KQW)*?D!^'#C?W@D?WV+")D@'VV2KQW?3ZIK;9`TXM&^-<85: M7=24U4$%6!VQ8%QH@/LO8\EXW9C%\[QTBWXR^Q_Z5W+H"*&;E[Z__AU=F_LG MO<Q@T9'`.;M.UQ<NP_';L-'F[[_[;SH+YPN/=9D#WP4OL6!<A/.\`BY@[<H2 MO8-^QOC4F(?Q6V%2"0;'V*9O4@YQGN7;UVY>"G&$Z0M7.>"%^?/EJ_P+P,X9 M*^"RWC?^/CD'`I5)*T%/Q##>O7=SF4Z]LT[?0OYAFV5Y]2Y]L/`NG6+VRUSC M90"YP[#02\'<IFT@=(V,E+1A`BX$G<E%M@)T#):QL)UU'%?6!\^,QB5)W++. M#.=@.I\K($RN&!Y2=$T."@M"V]%")HK+#849GQ.(*C.(1D8FZ',BAY5L_S`8 M[>BXKVYK&]R2N)X=DD>!(AR$Z:6Y;XP/05$WY/C!9/?^1/#:MZN/:'GN_M(- M7UUND)DXZ825X=&5R.[=OCH4PV(2SA7Z\Z4!I4N6\%Q+P6U!Q&$'[P<@_7AN M+:@4Q\^$!XIG"CB%(&>&E0*1^$&1.%G;"3I03;H9&\D\3B::PPMNC^@X=B9N MI1_<'IV?4!/3<H!;(;$(4*?D-:>NT>-MKVMPAX]1-7K`VGI&W%IJ1F=BRBU< ML`.+T=M:9/2ZT@X%,CUV-763;+V(A[MWVQQ8(&3R`8!E[SC5VWW@1/+P?B&Z M>32YLZUSGU9<`.-11>+YY(%#ARL1),E<<!U?->!9DM6C:$(>-AC.*X4AB/"- M9-3\3)#V5DZ2>58*#FP#7%%[*UF]<O5[NGGY(TB$YEFB\Q7\3H-G7`97"E[V M2593,1&/D]%JJ<<`@8>NT>WC5ITC6@*I,4Z#.Y\)*VDQ_XZHN=-9<#4=S+/P M:,/<'OA4=-LR+&N&O@ZQH1QT)J<X`$G?U/3G="9DN>*9C3=NT\WEC\J/(%+, M0(Q`*(@/<Y.S']"UF??>GD;-R##%5!:T`]84/4<WKCV<_1)##,L]SX$J']`R M9L&H:B"Y"9%@5D2D\F<DUD'\P\4A)3Y8&LHFK"\_:4J05(I-^4/$SZ?QBXUD MS"%_QB34;!*J;VK"F::F1!41F,)?A@B_"`*48`<S(KQH2G[0Z?NYT[<\/NS> MBYB]=G3H1:74SZ?#6JE/CJ32:KJ0:6R(0,9))!@<R>=T.2*GXHE,,%)T$`D/ M*'E%5V1)$N$$`DPISY,B'M6R0R>*(TH!4E5N7HY@QBEHD!B#44<=T0A`Q=QP M;E`WXU0`+`,LR)\*G,79B8SXT%+1S$0F#>EBH+Z^WH1F+@JG19\[I+C$#YPE M%1HGESF,05JV9YC=5HEOFW_DN`Q;T)76]H!*2.=OB2D+XH$-34/&\LA8P;P# M1\S95#34$!-G.6/Y`Z<($FXMNC7N5$Q$]`_F-VY3O1PY#LSEU/&F>"*M91J# M,I<%-HT[16'(Y:OK"W-5BP%5@%<!44HC3%6-Z',:FJWM>`ZW_CGF"H#><^+L M"\=@BF5!HW!,G`;017VE+E"0A<M+F%V]&A?1H'*]7%S;ZP3@>,)YNX\GTGC/ MN`ZYV:,.8LX1,CZY.+D8)W*Z$'0,=O,4/1P.VU3PD,,1OSBY"*6;+$BX]<!' MG197X>N<]I.H93^FGN?/N_4L]HGKQ=J7VO8&.P#DM[(Z9@H1W.&FKJ9@`[<X M3BC5%'/9'&:X-B.<3\E-L>`>R_#"81BK;7S@1X3M*9RHN76):E@.:>N((VVI MGW?>7_C"M3P(!^R,.O@MWK[V#2V;F;R;)T('G0'$8F]].,],)]]@X4!JFY4Y M66E7CE&'8=F$W);%9ZI,JT(RL1"'S^2C>DDMB,F0DT2@@EZG(V@M?`$J`J6* MJ,FCI.WKH2CA@9!>9P&PS`)@&2L:!BE#D0.Q[,U+,QL(PZNARN(L2#>Q@*-+ M'"$6A!#XD$Y51>!E9YBTHZ<HO796=:V?N_D1DW"3,VL.N@I%Q@2V#E(:7G-M MA@B3YQI]Z`C!,']>3#!!&=X"O8[B.4M"NN*6`$<Y;TN6LO'ZY%R0KA/N(.L) MJP-Y`K&&TOF<1\[)RJI).;-ULN](3P^DY[*_R8\IRRI6DX!M98A@*S'1AZ03 M3**3-$-?H*$E-4G501UK+DU7@U:<A4ZN,`3@\!$>*(WX*O)F&#_+LRV>_^+A MQ][I;+ZD.`I-<7PYL?"0B#3Q\83EPFQ3%T`"1DY'NH(0C](:Y`F-00Q.X3U= MJ>/0ZPIR['2+A8_A)L8.:`0\BR-UMI)OIU-QS_/,VG8!MDQB=0W-/IN1/0[L M,+KZZAR@0L^/8<(\<`6A'=-Q+,9VEHAH)F).78I<*^T'1?HS>]+^\;0$GQ)\ M2E;RY4!W5NZCUGZ!\L>=84>D+&D_;$DP[>?Q@R7U=LF$R\B01M!=S(HXP)AA M2#O"8"Y\U%Q#6FL$>4WYQL9YG.65@FEU8R9P)R[-`A!92;VK]A,,.SDZ3DY4 M%A/FY2EWJ>;>U"Y,?)9UF5Y=^`R\A+Z`A[F2&CB>D/7'5;;@_T_^_J,KFOZC M//I4OO]L]_[7W@J%8N7[3\O>UE;O_><G>?^ICY0T-=*7*T344M\8>S"I?NLA M+/N!L#?SR'@+8LL]8P-Z%R%<W8-\R/GZX,(%!QYPW\\%G$F!H.O#0(*VA^$C M1(HGT:>HVU\<BD`#+D$E]9V`PVM`7I$ECQX]<K2#O!HX"V`3$E:J4)*JX5Q! M&U'Z(:?Q0W7F."D^QER*)Z1075TJ!7E2"'-?4;X&S7D2%_,$IP`*I@0FGW"/ M$M>P22=AT:GDPZ?-V>H)8LVP0M@M7QQK<6L-!X\<2%:18"`.J1#(%MB)SP%K MJ8&SX9<&`&SS0H(O_.)`=VVNB9%BL3823-3"K607,86KY!?9>IF,H8E6DZ$; MV=HW1"*5S-P<.(Q[/6)@:V"R'70EN&N;B.2F1QBI&@!^#@!&7@W@U%"\PEB8 M2FI:)`>N@'6;.H.(5Y-SVS[>)6!))P`Q]PD15N2Y>=;O',X-5D.E>''%`1UP M@]O0)$\&/DB>D/J3P<<35>!BJ[;!J8VRE0ZKH+>E/5)#H)>K,;8,`)`*_5#_ M[Z@S?ESW_[BG6RG$$[`4?RD*N>7KZ+"2])!9@).S_-&'=(+WYE112>8#"1N> MO"E-V-K=3HJG)\,.)7A:_,%:J@3(]B@U5-"K'-.?GAJ0NK0S21)<E*<E2:*6 M*#]PW1,59]>B484K"L;MJ3JH,1?PPXA!"2I(@8M@[_/+QI^,28/BX]'5#Q<? ML-L-?)]^2.^P&Q3S3?\30(AW)T(D?JCG0`*<R/02JY-6K*L/=L$<(NSZ,T#H M>7J?OE]YBT<WY^[3!_-WV!/X)^SZ`UQ)]]$#K_`;Y$Y^`3((/@AONV2<244Q MEJGLOH"5;_R>HX:;*BAGY,$=_8L+^T:`/[3Q:_SN<5C9>.#L5BJ=,.];S=<Y MY,,J;5'C\F<2NP*V'@J<-Q@.)*C.&Z$Z;W3=J)@8_-]X:"655Z:#X?Y\D56I MXO8@);%G.31A\8X=$D^MP@8K'IQ#CH=K^,:'4OP5C\H9Q_4!DP$J:]G/'/N@ MG/:/CY-G8C&M@SRCI0MI\.I2X.RH*,XG@(P>AOY$D-VQL$\_+@87H(?%DY^+ M`8\9TCCFXJ,\-)C_!$H\(/![!J2RLZK::U[SFM>\YC6O><UK7O.:U[SF-:]Y HS6M>\YK7O.8UKWG-:U[SFM>\YC6O><UK7O.:UYY^^R^A+<V1`%`````` ` end