2016-10-26 2 views
1

Я извлекаю HTML-код с веб-страницы и пытаюсь получить данные из него.Заменить Все комбинации с неконвертируемыми HTML-тегами с помощью Jsoup

У меня есть HTML как <h3><strong>title</strong><h3>, который я хочу заменить <h2>. Но, иногда я нахожу неожиданные теги внутри контента, например:
<h3><br/><strong>title</strong></h3>

Как я могу удалить пустые HTML-теги, как <p><br></p> и <h3><br /><h3> из строки?

+1

Это действительно непонятно, что вы спрашиваете – ItamarG3

ответ

1

Вы всегда можете попробовать использовать метод jsoup .text() для элемента, чтобы захватить только текст, и они помещают этот текст внутри h3.

0

Для замены пустых элементов вы можете использовать селектор CSS :empty. Сделайте это в цикле, поскольку элемент, содержащий пустой элемент, не считается пустым, но будет удален в следующей итерации.

Для замены <h3><strong>...</strong><h3> тегов с <h2><strong>...</strong><h2> и удалить другие теги внутри <h3> тега, используйте replaceWith:

Пример кода

Document doc = Jsoup.connect("url").get(); 

// clean up empty elements 
while(!doc.select(":empty").isEmpty()){ 
    doc.select(":empty").remove(); 
} 

//replace h3 with h2 
doc.select("h3 > strong").forEach(strong -> { 
    strong.parent().replaceWith(new Element(Tag.valueOf("h2"), "").html("<strong>" + strong.text() + "</strong>")); 
}); 
+0

я стараюсь с моим собственным код – ramboeistblast

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

  • Нет связанных вопросов^_^