2012-09-28 38 views
0

我想從我的rss提要的描述標籤中獲取圖像鏈接。如何從描述標籤獲得圖像鏈接

描述標籤是採用以下格式:

<description>&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QVSgisNFiHp7mXgpD309loKdAQo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QVSgisNFiHp7mXgpD309loKdAQo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt; 
&lt;a href="http://feedads.g.doubleclick.net/~a/QVSgisNFiHp7mXgpD309loKdAQo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QVSgisNFiHp7mXgpD309loKdAQo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://4.bp.blogspot.com/-pogGG3n-PfM/TqoiXzjoTpI/AAAAAAAARKg/0OagMGCaddE/s1600/AA.jpg" style="font-family: Georgia, serif; font-size: 100%; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;&lt;span style="color: cyan;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5668380873371176594" src="http://4.bp.blogspot.com/-pogGG3n-PfM/TqoiXzjoTpI/AAAAAAAARKg/0OagMGCaddE/s320/AA.jpg" style="float: left; height: 320px; margin: 0px 10px 10px 0px; width: 320px;" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;br /&gt;09:15OTE Sport 2 Τένις ATP 250 Malaysia 1st semifinal&lt;br /&gt;&lt;br /&gt;11:05OTE Sport 3 Moto GP ARAGON FP3&lt;br /&gt;&lt;br /&gt;11:15OTE Sport 2 Τένις ATP 250 Malaysia 2nd semifinal&lt;br /&gt;&lt;br /&gt;13:00NOVASPORTS 4 Ιστιοπλοΐα ALPARI 2012: World Match Racing Tour, Γαλλία&lt;br /&gt;&lt;br /&gt;14:00OTE Sport 2 Γερμανία δεύτερη κατηγορία Μόναχο 1860-Σαντχάουζεν&lt;br /&gt;&lt;br /&gt;14:45NOVASPORTS 1 Αγγλικό Πρωτάθλημα ΑΡΣΕΝΑΛ - ΤΣΕΛΣΙ&lt;br /&gt;&lt;br /&gt;14:50OTE Sport 3 Moto GP ARAGON QUAL&lt;br /&gt;&lt;br /&gt;15:00EUROSPORT Ποδόσφαιρο: Παγκόσμιο Γυναικών U-17 Φάση ομίλων: Γκάμπια - Γαλλία&lt;br /&gt;&lt;br /&gt;16:00NOVASPORTS 3 Φιλικός αγώνας μπάσκετ ΟΛΥΜΠΙΑΚΟΣ - ΛΟΚΟΜΟΤΙΒ ΚΟΥΜΠΑΝ&lt;br /&gt;&lt;br /&gt;16:30OTE Sport 1 Γερμανικό Πρωτάθλημα Βέρντερ-Μπάγερν&lt;br /&gt;&lt;br /&gt;17:00OTE Sport 3 Football League Παναιτωλικός-Καλλονή&lt;br /&gt;&lt;br /&gt;17:00OTE Sport 2 Ισπανικό Πρωτάθλημα Βαλένθια-Σαραγόσα&lt;br /&gt;&lt;br /&gt;17:00EUROSPORT Ποδηλασία Γύρος της Λομβαρδίας&lt;br /&gt;&lt;br /&gt;17:15NOVASPORTS 1 Σούπερ Λίγκα ΠΑΝΙΩΝΙΟΣ - ΑΕΚ&lt;br /&gt;&lt;br /&gt;17:15NOVASPORTS 2 Σούπερ Λίγκα ΚΕΡΚΥΡΑ - ΟΦΗ&lt;br /&gt;&lt;br /&gt;18:15EUROSPORT Ποδόσφαιρο: Παγκόσμιο Γυναικών U-17 Φάση ομίλων: Καναδάς- Αζερμπαϊτζάν&lt;br /&gt;&lt;br /&gt;19:00OTE Sport 1 Ισπανικό Πρωτάθλημα Μάλαγα-Μπέτις&lt;br /&gt;&lt;br /&gt;19:00OTE Sport 2 Ιταλικό Πρωτάθλημα Πάρμα-Μίλαν&lt;br /&gt;&lt;br /&gt;19:00NOVASPORTS 3 Φιλικός αγώνας μπάσκετ ΤΣΣΚΑ ΜΟΣΧΑΣ - ΖΑΛΓΚΙΡΙΣ ΚΑΟΥΝΑΣ&lt;br /&gt;&lt;br /&gt;19:00Sport TV Βελγικό πρωτάθλημα ΖΟΥΛΤΕ ΒΑΡΕΓΚΕΜ-ΑΝΤΕΡΛΕΧΤ&lt;br /&gt;&lt;br /&gt;19:30OTE Sport 3 Γερμανικό Πρωτάθλημα Ντόρτμουντ-Γκλάντμπαχ&lt;br /&gt;&lt;br /&gt;19:30NOVASPORTS 2 Σούπερ Λίγκα ΑΤΡΟΜΗΤΟΣ - ΟΛΥΜΠΙΑΚΟΣ&lt;br /&gt;&lt;br /&gt;19:30NOVASPORTS 1 Αγγλικό Πρωτάθλημα ΜΑΝΤΣΕΣΤΕΡ Γ. - ΤΟΤΕΝΑΜ&lt;br /&gt;&lt;br /&gt;21:00OTE Sport 1 Ισπανικό Πρωτάθλημα Σοσιεδάδ-Αθλέτικ Μπιλμπάο&lt;br /&gt;&lt;br /&gt;21:45OTE Sport 2 Ιταλικό Πρωτάθλημα Γιουβέντους-Ρόμα&lt;br /&gt;&lt;br /&gt;22:30NOVASPORTS 2 Πορτογαλικό Πρωτάθλημα ΡΙΟ ΑΒΕ - ΠΟΡΤΟ&lt;br /&gt;&lt;br /&gt;23:00OTE Sport 1 Ισπανικό Πρωτάθλημα Σεβίλη-Μπαρτσελόνα &lt;/div&gt;&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="https://active.macromedia.com/flash/cabs/swflash.cab#version=3,0,0,11" height="87" width="690"&gt;&lt;param name="Movie" value="http://network.clickbanner.gr/42/13418/13028/"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="Loop" value="true"&gt;&lt;param name="play" value="true"&gt;&lt;param name="allowScriptAccess" value="sameDomain"&gt;&lt;param name="FlashVars" value="clickTAG=http://network.clickbanner.gr/z/13028/CD13418/"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;embed src="http://network.clickbanner.gr/42/13418/13028/" flashvars="clickTAG=http://network.clickbanner.gr/z/13028/CD13418/" quality="high" bgcolor="#FFFFFF" name="Banner" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="https://www.macromedia.com/go/getflashplayer" align="middle" height="87" width="679"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://network.clickbanner.gr/z/12699/CD13418/" target="_blank"&gt;&lt;img alt="" border="0" src="http://network.clickbanner.gr/42/13418/12699/" style="height: 82px; margin: 0 10px 10px 0; width: 674px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4261359698446466108-6623338655004558006?l=olympiacos-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/olympiacos-blogspot/xJVek/~4/I0JP9iZXKTc" height="1" width="1"/&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-pogGG3n-PfM/TqoiXzjoTpI/AAAAAAAARKg/0OagMGCaddE/s72-c/AA.jpg" height="72" width="72" /> 

我想獲得IM

http://4.bp.blogspot.com/-pogGG3n-PfM/TqoiXzjoTpI/AAAAAAAARKg/0OagMGCaddE/s1600/AA.jpg

的方式嘗試它是

if (description.contains("div class=\"seperator\" ")){ 
       String imgg = description.substring(description.indexOf("div class=\"seperator\"")); 
       String cleanUp = imgg.substring(0, imgg.indexOf(">")+1);//deixnei apo pou ksekina to keimeno 
       imgg = imgg.substring(imgg.indexOf("a href=") + 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{ .... 

,但即時通訊總是得到else語句。我該如何解決它?

感謝您的時間

@juan我可以用這樣的事情嗎?

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"); 
+0

哪裏是'類=「分隔符」'定義?我沒有看到它在你的XML –

+0

這是鏈接,請http://feeds.feedburner.com/olympiacos-blogspot/xJVek –

回答

0

這可能不是你的唯一的問題,但

"class=\"seperator\" " 

有一個錯字,應該是

"class=\"separator\" " 

此外,使用正則表達式來分析,除非你控制的XML XML是脆完全。即使那樣,您最好使用XML解析器/ XPath

您擁有的XPath將檢索文檔中的第一張圖像,您確定這就是您想要的嗎?你或許應該用更多的東西一樣

//div[@class='separator']/img 

要獲得從返回Node的屬性,使用

imgNode.getAttributes().getNamedItem("src").getNodeValue() 
+0

我已經嘗試過與xpath,但它不工作too.but也許我沒有使用它以正確的方式..我已經在我的問題中發佈了代碼,以便檢查它!感謝您的時間:) –

+0

@androidDe是否將'seperator'更改爲'separator'? –

+0

是的,但我得到相同的結果。 –