arcanum_jp’s blog

おっさんの日記

Jericho Html Parser

 こうだったらなぁと思うところ。

 JerichoはタグについてはElementとして認識するけど、タグに囲まれてもいない単なる文字列はタグのコンテンツの内容としてしか認識されない。どういうことかと言うと、tdタグなんかに例えば、次のように記述すると、

...
<td>
 xxxにおけるマトリクス
  <table>
      ... ここにマトリクスの内容
  </table>
</td>

 この場合、Element(tdタグ)#getChildElements()は1件のリストで当然

タグであり、xxxから始まる文字列はどこで取得できるかと言うとElement(td)#getContent()の方。でもこのgetContent()が返すSegmentオブジェクトがちょっと曲者で、tdタグの内部のElement(この場合tableタグ)まで保持している。文字列で言うとこんな感じ

 xxxにおけるマトリクス
  <table>
      ... ここにマトリクスの内容
  </table>

 まさにそのまんまだけど、xxxから始まる文字列を取得するときはどうやら自分で文字列処理を行わなければならないらしい。非常に煩雑だ。


 よくわからんが、HTMLの厳密な仕様に従えばpタグやdivタグに囲まれているべきだろうってのは分かるけど、どうせだったらgetChildElements()もElementのリストでなくてSegmentのリストで返してくれりゃいいなぁとほざいてみる。


 上記の場合、"xxxにおけるマトリクス"を内容に持つSegmentオブジェクトと、tableタグのElementオブジェクトの2件とか。そうすれば全部再帰的に処理を記述する事ができて楽なのになぁ。