2016-01-21 156 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