Извлечение текста за пределами HTML-тега

У меня есть следующий код HTML:

<div class=example>Text #1</div> "Another Text 1" <div class=example>Text #2</div> "Another Text 2" 

Я хочу извлечь текст за пределами тега, «Другой текст 1» и «Другой текст 2»,

Я использую JSoup для достижения этого.

Есть идеи???

Благодаря!

Вы можете выбрать следующий Node (not Element !) Каждого div -tag. В вашем примере все они являются TextNode .

 final String html = "<div class=example>Text #1</div> \"Another Text 1\"\n" + "<div class=example>Text #2</div> \"Another Text 2\" "; Document doc = Jsoup.parse(html); for( Element element : doc.select("div.example") ) // Select all the div tags { TextNode next = (TextNode) element.nextSibling(); // Get the next node of each div as a TextNode System.out.println(next.text()); // Print the text of the TextNode } 

Вывод:

  "Another Text 1" "Another Text 2" 

Одним из решений является использование ownText() (см. Документы Jsoup). Этот метод возвращает текст, принадлежащий только указанному элементу, и игнорирует любой текст, принадлежащий его прямым дочерним элементам.

Используя только html, который вы предоставили, вы можете извлечь собственный текст <body> :

 String html = "<div class='example'>Text #1</div> 'Another Text 1'<div class='example'>Text #2</div> 'Another Text 2'"; Document doc = Jsoup.parse(html); System.out.println(doc.body().ownText()); 

Вывод:

 'Another Text 1' 'Another Text 2' 

Обратите внимание, что метод ownText() может использоваться для любого Element . В документах есть еще один пример.