2011-12-24 3 views
0

메신저 사이트에서 Rss를 받고 있습니다. 설명 태그에는 사용자에게 보여주고 싶은 이미지가 있습니다. 이 코드를 사용하고하면 효율적으로 활용하려면 다음 작업을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

노드 가져 오기 (i mean library) 란 무엇입니까 ?? 이 하나의 import org.w3c.dom.Node; – maverickosama92

+1

사용중인 라이브러리를 지정하십시오. w3c 노드에서'getAttribute'를 찾을 수 없습니다. –

+0

'getAttribute (String) 메소드가 Node 유형에 대해 정의되지 않았습니다. ' –