#java #android #jsoup
#java #Android #jsoup
Вопрос:
Ну, у меня проблема с моим кодом, мне нужно загрузить код с URL (code: php), используя JSOUP на платформе Android. Сайт выглядит красиво (данные разделяются вводом), а в приложении все написано одной строкой, и я не могу подстроить это под ваши нужды. А именно, я хотел бы, чтобы данные со страницы были расположены в приложении одинаково.
private void getWebsite(){
new Thread(new Runnable() {
@Override
public void run() {
final StringBuilder builder = new StringBuilder();
try {
Document doc = Jsoup.connect("https://k69.pl/odtwarzacz/aplikacjaRadia.php").get();
Elements links = ((Document) doc).select("body");
for(Element link : links){
builder.append(link.attr("<br>")).append(link.text());
}
} catch (IOException e){
builder.append("Aplikacja nie mogła wykonać żądania. Zgłoś ten błąd do administratora aplikacji. Twój błąd to : ").append(e.getMessage()).append("n");
}
runOnUiThread(new Runnable() {
@Override
public void run() {
wynik.setText(builder.toString());
}
});
}
}).start();
}
Результат с сайта:
Результат из приложения:
Ответ №1:
предназначен для HTML, поэтому, если вы создаете HTML для webview, это будет работать нормально. Однако вы устанавливаете текст так, чтобы HTML-теги не понимались или не выполнялись.
Вместо установки текста вы должны делать
builder.append(link.attr("n")).append(link.text());
Счастливого кодирования!
Комментарии:
1. После изменения кода текст по-прежнему записывается в одной последовательности в приложении.
2. Вероятно, это потому, что вы получаете тег BODY, и он содержит только один элемент. Установите точку отладки и убедитесь, что в вашем теге BODY более одного элемента и что вы правильно перемещаете дочерние элементы, а не только тело как один элемент.
Ответ №2:
try {
Document doc = Jsoup.connect("https://k69.pl/odtwarzacz/aplikacjaRadia.php").get();
Elements links = ((Document) doc).select("div");
for(Element link : links){
builder.append(links.attr("n")).append(links);
Сэм,
Я изменил код, теперь у меня такой результат (https://imgur.com/a/ts8FPhJ ). Как избавиться от этого div и br?
link.text() <= приводит к продолжению текста в одной строке
Ответ №3:
Спасибо за помощь, я сделал это по-другому, и это работает так, как я хотел. Поменяйте местами элементы «JSOUP» на String.
for(Element link : links){
String tresc = links.toString();
String[] x;
String zamien;
zamien = tresc.replace("<br>","");
x = zamien.split("n");