HTML解析にハマる

HTML::TagParserでは、HTML内の<li>タグの一覧を取得するのは容易だけど、<li>タグで囲まれている範囲に対してもう一度タグを取得することはできない。

<li><a href="hoge11">title1</a><a href="hoge12">comment1</a><class="timestamp1">TIME1</class></li>
<li><a href="hoge21">title2</a><class="timestamp2">TIME2</class></li>
<li><a href="hoge31">title2</a><a href="hoge32">comment3</a><class="timestamp3">TIME3</class></li>

とあったときに、getElementsByTagName("li")で3件分のエレメントを取得すると、各エレメントに対してgetElementByAttributes("href")とかができないみたい。innerTextも、title1,comment1,TIME1をばらばらで取得することができなさそう。なんかいい方法はないのだろうか。