2016-01-21 152 views
0

在Android Studio中從xml文件中獲取圖片url似乎非常棘手。試圖對30個RSS Feed xml的圖片url進行分類,我發現其中95%使用「.jpg」圖片,並且鏈接區別以「http」開頭,而不是「www。」開頭。因此,即時通訊,要來試圖寫一段代碼:從xml文件中獲取圖片url

  1. 越來越一個節點(見xml_part),從「項目」的XML文件的 節點的節點列表轉換成字符串。
  2. 從字符串的起始位置到達「.jpg」的位置並切出其餘的字符串。
  3. 從該「.jpg」點開始,向後到達「http」點並切出其餘的字符串。
  4. 保存圖片網址供以後使用。

xml_part

<item> 
<title>Πάνω από 1 στα 3 νοικοκυριά ζει με ετήσιο εισόδημα κάτω από 10.000 ευρώ</title> 
<link>http://tvxs.gr/news/ellada/pano-apo-1-sta-3-noikokyria-zei-me-etisio-eisodima-kato-apo-10000-eyro</link> 
<description>&lt;p&gt;Συντριπτικά αρνητικές είναι οι προσδοκίες των νοικοκυριών καθώς το 70% αναμένει επιδείνωση της οικονομικής του κατάστασης και μόνο το 5,1% προσδοκά σε βελτίωση των οικονομικών του δυνατοτήτων, όπως προκύπτει από την &lt;strong&gt;έρευνα&lt;/strong&gt; του Ινστιτούτου Μικρών Επιχειρήσεων της &lt;strong&gt;ΓΣΕΒΕΕ&lt;/strong&gt; για το &lt;strong&gt;εισόδημα&lt;/strong&gt; και τις &lt;strong&gt;δαπάνες&lt;/strong&gt; των νοικοκυριών για το &lt;strong&gt;2015&lt;/strong&gt;.&lt;/p&gt; 
&lt;div class=&quot;field field-type-filefield field-field-article-image&quot;&gt; 
    &lt;div class=&quot;field-items&quot;&gt; 
      &lt;div class=&quot;field-item odd&quot;&gt; 
        &lt;img src=&quot;http://im2ns5.27210.gr/sites/default/files/imagecache/280x/article/2016/03/194269-ellada-krisi-oikonomia-anergia.jpg&quot; alt=&quot;&quot; title=&quot;&quot; class=&quot;imagecache imagecache-280x imagecache-default imagecache-280x_default&quot; width=&quot;280&quot; height=&quot;175&quot; /&gt;  &lt;/div&gt; 
     &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;a href=&quot;http://tvxs.gr/news/ellada/pano-apo-1-sta-3-noikokyria-zei-me-etisio-eisodima-kato-apo-10000-eyro&quot; target=&quot;_blank&quot;&gt;διαβάστε περισσότερα&lt;/a&gt;&lt;/p&gt;</description> 
<category domain="http://tvxs.gr/taxonomy/term/2">Ελλάδα</category> 
<category domain="http://tvxs.gr/taxonomy/term/78458">ΓΣΕΒΕΕ έρευνα ετήσιο οικογενειακό εισόδημα Δεκέμβριος 2015</category> 
<category domain="http://tvxs.gr/taxonomy/term/78459">μείωση εισοδημάτων Ελλάδα νοικοκυριά 2015</category> 
<pubDate>Thu, 21 Jan 2016 15:09:50 +0000</pubDate> 
<dc:creator>Ειρήνη Ορφανίδου</dc:creator> 
<guid isPermaLink="false">194269 at http://tvxs.gr</guid> 
</item> 

我的一段代碼

String WholeNode = nl.item(i).getNodeValue(); 
int WholeNode_length = WholeNode.length(); 

for (int WN = 0; WN < WholeNode_length; WN++) { 

    String JPGChecker = WholeNode.substring(WN,WN+4); 

     if (JPGChecker.equals(".jpg")) { 
      WholeNode = WholeNode.substring(0,WN+4); 
      WholeNode_length = WholeNode.length(); 
     } 
} 

for (int SN = WholeNode_length; SN > 0; SN--) { 

    String HTTPChecker = WholeNode.substring(SN-4, SN); 

    if (HTTPChecker.equals("http")) { 
     WholeNode = WholeNode.substring(SN, WholeNode_length); 
     WholeNode_length = WholeNode.length(); 
    } 
} 

_item.setImage(WholeNode); 

不工作,不明白爲什麼,請幫助新手。

此外,如果屬實,有必要第一次打破。也許sotmething像:

GETOUT: for (... 

if (...) { ...; break GETOUT;} 

xmlcategorization是其中圖像是不是.jpg的其他5%(容易地改變上述代碼包括其它圖像格式)和其他情況下,其中網址不是「從頂部」,而是在「http://www.antikoukou.com/」之後,例如。

+0

這不是JavaScript。 – Pointy

+0

Oups。編輯,對此抱歉:/ – OzMa13

+0

而不是檢查子字符串是否匹配,爲什麼不使用正則表達式?它們以http開頭,並以圖像標籤(.jpg,.jpeg,.png,.gif等)結尾: ** https::\/\// +/\(?: png | jpg | jpeg | gif)** –

回答

0

訪問鏈接http://developer.android.com/training/basics/network-ops/xml.html#parse

  1. 創建解析器
  2. 解析parser.next()在一段時間,直到你獲得所需的參數通過參數的
  3. GET值:

    parser.require(XmlPullParser.START_TAG, ns, "link"); 
    String link = readText(parser); 
    parser.require(XmlPullParser.END_TAG, ns, "link"); 
    

或者如果您需要每個鏈接屬性,則只能在循環(while)中運行parser.requirelink,並將每個結果readText排列在數組中。

Regards