我想用htmlparser解析以下内容。我为标题编写代码并且工作正常。我尝试了以下标记,但没有任何工作。请帮助我第一次进行这种编程。 1) 我想从img标签
中检索img src url<div id="images">
<img src="../images/abc.jpg" align="right" style="padding-right:5px;">
2)我想检索<li>
标签之间的文字内容。
<ul>
<li>hello</li>
<li>how r u?</li>
<li>bye</li>
</ul>
我尝试使用以下代码来检索img标记src url。但是它会抛出nullpointer异常。
Parser parser=new Parser();
HasAttributeFilter imgfil=new HasAttributeFilter("align","right");
NodeList img=parser.parse(imgfil);
Node node1=img.elementAt(0);
ImageTag tg=(ImageTag) node1;
String url=tg.getText();
System.out.println(url);
我也尝试过以下片段。但没有任何作用。
NodeList img=parser.extractAllNodesThatMatch(new AndFilter(new TagNameFilter("img"),new HasAttributeFilter("align","right")));
SimpleNodeIterator iterate=img.elements();
while (iterate.hasMoreNodes())
{
Node node1 = iterate.nextNode();
ImageTag tag = (ImageTag)node1;
System.out.println(tag.getImageURL());
}
答案 0 :(得分:0)
如果纠正,您尝试的第二部分代码将起作用。第一行有问题:
NodeList img=parser.extractAllNodesThatMatch(new AndFilter(new TagNameFilter("img"),new HasAttributeFilter("align","right")));
我想我明白了如何解决这个问题。你没有使用parser.extractAllNodesThatMatch(),使用parser.parse(),看看是否有帮助。
这是我的意思的一个例子:
NodeFilter filter1 = new AndFilter(new TagNameFilter("IMG"), new HasParentFilter(new HasAttributeFilter("id", "featured_story_1"), true));
NodeList list = parser.parse(filter1);
for(int i = 0; i < list.size(); i++)
{
Node node = list.elementAt(i);
ImageTag image = (ImageTag)node;
System.out.println(image.getImageURL());
}
希望这有帮助!