2016-01-21 3 views
0

Получение URL-адреса изображения из XML-файлов кажется сложным в Android Studio. Пытаясь категоризировать URL-адрес изображения 30 RSS-ленты xmls, я обнаружил, что 95% из них используют изображения «.jpg», а ссылка alwayas начинается с «http», а не «www.». Таким образом, им tryingto написать кусок кода, который:Получить изображение url из файла xml

  1. получает один узел (см xml_part), из нодлиста из «пункта» узлов в файле XML, в строку.
  2. С самого начала строки достигают точки «.jpg» и вырезают остальную часть строки.
  3. Оттуда точка «.jpg» и обратная сторона достигают точки «http» и вырезают остальную часть строки.
  4. Сохраните URL-адрес изображения для последующего использования.

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); 

Не работает и не может понять, почему, пожалуйста, помогите новичку.

Кроме того, существует необходимость разбить 1-й раз, если это правда. Может быть, как sotmething:

GETOUT: for (... 

и

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

Остальные 5% от xmlcategorization является, в котором изображение не .jpg (легко изменяя код выше, включают другие форматы изображений) и другие случаи, в которых url не «сверху», а после «http://www.antikoukou.com/» для ex.

+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. получить значение параметра по:

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

Если вам нужен только атрибут каждой ссылки, вы можете запустить parser.require с link в цикле (while) и поместить каждый результат из readText в массив.

С уважением

Смежные вопросы