У меня есть одна HTML-страница, я пытаюсь получить данные (текст) с нее.Столкнувшись с проблемой ниже.
Ниже приведен код HTML-страницы
<div class="main-class">
<div class="sub-class">
<p class="title">Title of data one</p>
<p>one data</p>
<p>two line</p>
<p> three line</p>
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
</div>
<div class="sub-class">
<p class="title">Title of data two</p>
<p>asd sdffsdfsdf</p>
<p>asd dfgdfg</p>
<p>asd dfgdfgd</p>
<ul>
<li>qweqwe</li>
<li>fghgfhgf</li>
<li>gdfgdfgd</li>
</ul>
<p>new p tag</p>
<table>ignore</table>
</div>
</div>
есть один подкласс основного класса два. Я могу получить весь текст из основного класса.Но нужно хранить данные из первого подкласса в одной строке и второго подкласса в другой строке.Необходимо игнорировать последний тег p и тег таблицы.
Условие состоит в том, что некоторое время может отсутствовать первый подкласс. Поэтому данные из второго подкласса должны попадать во вторую строку, а первая строка должна быть нулевой.
Я попробовал следующий код
Elements data = doc.getElementsByClass("sub-class");
System.out.println(data);
String allData= data .text();
Я получаю весь текст из подкласса.
У меня возникают следующие проблемы 1. Не удается сохранить данные первого подклассав первой строке =?2. Не удалось сохранить данные второго подкласса в строке два =?3. Не удалось получить <ul> <li> tag text data
.4. Невозможно игнорировать последние <p> tag and <table> tag
Elements elements = document.getElementsByClass("main-class");
Elements subClassData1 = document.select("div.sub-class:eq(0)");
if(elements.hasText()){
return elements.text().toString();
}
else if(subClassData1 != null){
return subClassData1.text().toString();
}
}
Ожидаемый результат:
Данные подкласса один = " Название данных один: одна строка данных две строки три строки abc
Подкласс два data = " Название данных два: asd sdffsdfsdf asd dfgdfg asd fgdfgd qweqwe fghgfhgf gdfgdfgd