2017-09-01 10 views
0

Jsoupを使って、私は記事を解析し、TextViewとImageViewをプログラムで作成してAndroidアプリケーションに表示しようとしていました。私は多くのカスタマイズを提供していないので、AndroidスタジオでWebViewレイアウトを使用しないようにしています。 TextViewを使って、私が望むように動作するようにアプリを設定できます。Jsoupを使って順番にHTML要素を解析する

問題は、記事の要素を正確ににして、その順序で表示しなければならないということです。 (尋ねるのために簡略化)

資料では、このようになります

<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> 

は構造が文句を言わない、各記事に対して同じです。重要なのはいつでもtheresの画像、私は画像のURLを取得する必要がありますし、テキストがあるとき、私はテキストを取得する必要があることですいただきましたたぶん他のいくつかの記事では、この

<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> 

ようなものです。

タグを繰り返して、画像やテキストを検索しようとしました。

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> 

ような場合にはそれが唯一のあまり、テキストではなく画像のURLの下に取得したテキストをつかみます。

Source : ABC Pte. Ltd. 

答えて

0

代わりのimageElement.absUrl("src"); uがimageElement.attr("src");

を使用して試すことができ
関連する問題