Массив, повторяющий данные на выходе

(Я не знал, как правильно правильно пометить мою проблему, поэтому не против названия).

Я работаю над java DOM Parser, чтобы разобрать rss-канал и вывести файл (.xml). Все работает, за исключением одного основного компонента. (Он использует Jsoup для некоторых частей)

In the tag (the article body) it has to change all the <iframe> tags to tags and sets the visual part of it to the thumbnail of the video that was contained in the iframe tag.

Это код, который преобразует теги и изменяет html тегов.

String html = theString;
org.jsoup.nodes.Document docHtml = Jsoup.parse(html);
Elements body = docHtml.select("body");

Elements iframes = body.select("iframe");
iframes.tagName("a");
iframes.removeAttr("width");
iframes.removeAttr("height");
iframes.removeAttr("allowfullscreen");
iframes.removeAttr("frameborder");
//iframes.attr("href", youtubeURL);

for(int k=0; k<1; k++) {

    String[] array;
    String[] array1;
    array = new String[10];
    array1 = new String[10];

    String youtubeID = "";
    String link = "";

    array[k] = iframes.attr("src");
    //System.out.println(array[k]);
    String pattern = "(?<=watch\\?v=|/embed/)[^&#]*";
    Pattern compiledPattern = Pattern.compile(pattern);
    Matcher matcher = compiledPattern.matcher(array[k]);
    while(matcher.find()){
        array1[k] = matcher.group();

        //System.out.println(matcher.group());
        //This is the line in question
        iframes.html("
Tap to play video"); System.out.println(iframes); }

Весь синтаксический анализ работает, и я могу успешно получить Youtube ID из тега iframe, используя регулярное выражение. Но если сообщение имеет несколько видеороликов, вместо того, чтобы вставлять все нужные ID, он вставляет только идентификатор первого видео в этом сообщении.

Итак, вместо (пожалуйста, извините форматирование)

a src="http://www.youtube.com/embed/5CzKyR6jzyw">
Tap to play video

Он дает (обратите внимание на атрибут img src)


Tap to play video

Tap to play video

Tap to play video

Tap to play video

Tap to play video

Tap to play video

Tap to play video

Я почти уверен, что это действительно просто, и я просто пропустил его.

Edit: thanks irrelephant (For fixing the formatting)

Опять же, пожалуйста, извините мою нехватку деталей и/или сделав что-то действительно простое сбивающее с толку, но я не знаю, как правильно выразить проблему под рукой.

0
nl ja de

1 ответы

Решил!

Я изменил способ получения Jsoup URL. Раньше он получал только URL-адрес первого элемента, и я его не замечал.

Поэтому я изменил

array [k] = iframes.attr ("src");

чтобы:

for (Element e : body.select("iframe")) {

  //This gets individual elements, rather than the first one of each post.
  array[k] = e.attr("src");

  String pattern = "(?<=watch\\?v=|/embed/)[^&#]*";
Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(array[k]);
while(matcher.find()){
    array1[k] = matcher.group();



    e.html("
Tap to play video"); //System.out.println(iframes); }

(Существуют и другие изменения, но это из кода, упомянутого в исходном сообщении).

Теперь он выводится (как и предполагалось, но, очевидно, я изменил атрибут src на href ), другой мудрый, который был бы глупым и встречным продуктом):

 
Tap to play video

Tap to play video

Tap to play video

Tap to play video

Tap to play video

Tap to play video

Tap to play video
0
добавлено
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async