2011-12-24 7 views
0

ImサイトからRssを取得しています。 descriptionタグには、ユーザーに見せたい画像があります。私はこのコードを使用してmはそれを得るために:Rssから画像を取得する - それを行う最善の方法は?

public void setDescription(String description) { 
     this.description = description; 
     //parse description for any image or video links 
     if (description.contains("<img style=")){ 
      String imgg = description.substring(description.indexOf("<img style=")); 
      String cleanUp = imgg.substring(0, imgg.indexOf(">")+1); 
      imgg = imgg.substring(imgg.indexOf("src=") + 5); 
      int indexOf = imgg.indexOf("\""); 
      if (indexOf==-1){ 
       indexOf = imgg.indexOf("\""); 
      } 
      imgg = imgg.substring(0, indexOf); 

      setImgLink(imgg); 

      this.description = this.description.replace(cleanUp, ""); 
     } else{ 

      String imgg2="replace_image.png"; 
      setImgLink(imgg2); 
     } 

    } 

私の問題は、RSSを取得し、サイトイムは、XMLで何かを変更した場合、イムは、私はimage.For例に取って代わるなっていることであるかの画像SRCにIMGのスタイルの変更またはこのようなものです。

それを修正し、説明からイメージを毎回入手する方法はありますか? 私は私がこのようなものを使用することができますが、私はそれがhttp://developer.android.com/reference/android/text/Html.html

感謝!:)

答えて

0

よりもむしろイメージソースを抽出するために、DOMとXPathを使用するために、その優れた正規表現を使用して動作させることができないことを見出しました。この方法では、HTMLが変更されても、ソリューションは引き続き機能します。

descriptionに説明があり、画像パスがimggになっているようです。これを試してみてください:

DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); 
builderFactory.setNamespaceAware(true); 
DocumentBuilder builder = builderFactory.newDocumentBuilder(); 
Document document = builder.parse(description); 

XPath xpath = XPathFactory.newInstance().newXPath(); 
String expression = "//img"; 
Node imgNode = (Node) xpath.evaluate(expression, document, XPathConstants.NODE); 

String imgg = imgNode.getAttribute("src"); 
+1

ノードのインポートとは何ですか?これは1つのインポートorg.w3c.dom.Nodeです。 – maverickosama92

+1

使用するライブラリを指定してください。私はw3cノードで 'getAttribute'を見つけることができません。 –

+0

'getAttribute(String)メソッドは、タイプNode'に対して未定義です –

関連する問題