使用Jsoup,我一直在尝试通过编程方式创建TextView和ImageView来解析文章并在Android应用程序中显示它。我试图避免在Android Studio中使用WebView布局,因为它不提供太多自定义。使用TextView,我可以将应用程序设置为我想要的行为。
问题在于我应该按顺序获取文章元素并按顺序显示。
文章可能看起来像这样(为了询问而简化)
<h2>Lorem ipsum</h2>
<p>Lorem ipsum 2</p>
<p>Lorem ipsum 3</p>
<p><img src="blabla.jpg"/></p>
<p>Lorem ipsum Lorem ipsum Lorem ipsum</p>
<strong>Dolor si amette</strong>
<p><img src="abc.png"/><br/>Source : ABC Pte. Ltd.</p>
每篇文章的结构都不一样。也许在其他一些文章中,它就像这样
<p><img src="blabla.jpg"/></p>
<p>Lorem ipsum 2</p>
<p>Lorem ipsum 3</p>
<h2>Lorem ipsum</h2>
<p><img src="abc.png"/><br/>Source : ABC Pte. Ltd.</p>
<strong>Dolor si amette</strong>
重要的是,每当theres图像,我应该得到图像的URL,当有文本时,我应该得到文本。
我尝试迭代每个 p标记并查找图片或文字。
Document jsoupParse = Jsoup.parse(html);
Elements paragraph = jsoupParse.getElementsByTag("p");
int sizeJsoup = jsoupParse.getElementsByTag("p").size();
System.out.println("Size of P tag = "+sizeJsoup);
for(Element element:paragraph){
if(element.hasText()){
System.out.println("Text:"+element.text());
}else{
Elements image = element.getElementsByTag("img");
for(Element imageElement:image){
System.out.println("Image URL : "+imageElement.absUrl("src"));
}
}
}
不幸的是,它不考虑标题标记,它只会抓取文本,例如
<p><img src="abc.png"/><br/>Source : ABC Pte. Ltd.</p>
它只会低于文字而不是图片网址。
Source : ABC Pte. Ltd.
答案 0 :(得分:0)
而不是imageElement.absUrl("src");
你可以尝试使用imageElement.attr("src");