出来た気がする。
子要素を含むXPath構文からNodeFilterを作る部分は出来てないけど
個人的に必要な範囲なのは出来た気がする。
ParserTemplateTest.java
public class ParserTemplateTest extends TestCase {public void testParse() throws JaxenException, ParserException {
AnchorTestFinder finder = new AnchorTestFinder();
finder.parse(this.getClass().getClassLoader().getResource("test.html")
.toString(), "a[@href='test']");
LinkTag[] tags = (LinkTag[]) finder.getNodes();
assertNotNull(tags);
assertEquals(2, tags.length);
assertEquals("hoge", tags[0].getLinkText());
assertEquals("bar", tags[1].getLinkText());
}private final class AnchorTestFinder extends ParserTemplate {
private final List
list = new LinkedList (); @Override
protected Handler getHandler() {
return new Handler() {public void accept(Node node) {
list.add(node);
}};
}public Node[] getNodes() {
return this.list.toArray(new LinkTag[list.size()]);
}}
}
test.html
<HTML>
<HEAD>
</HEAD>
<BODY>
<a href="test">hoge</a>
<a href="">piyo</a>
<a>poyo</a>
<div><a href="test">bar</a>
</div>
</BODY>
</HTML>