Как извлечь текстовое содержимое только из элемента root - java, com.gargoylesoftware.htmlunit. html - PullRequest
1 голос
/ 26 марта 2020

Я не могу найти способ извлечь текстовое содержимое только из элемента root, используя com.gargoylesoftware.htmlunit. html. Вот некоторый пример:

<td>
  W 03:10 PM-04:25 PM
  <strong>
     <br>
     Hybrid (50%+ in-person)
  </strong>
</td>

Я хочу извлечь текстовое содержимое из элемента root (в данном случае «td»), но оно также извлекает текстовое содержимое из дочернего элемента, который является часть, которую я не хочу:

private void extractTextContent(HtmlElement htmlElement) {
    String content = htmlElement.getTextContent();
    System.out.println(content);
}

вывод:

W 03:10 PM-04:25 PMHybrid (50%+ in-person)

желаемый вывод:

W 03:10 PM-04:25 PM

Я пытался использовать вызов другого метода "asText ()", однако это не дает мне желаемого результата. Я не смог найти людей, у которых есть такой же вопрос, используя com.gargoylesoftware.htmlunit. html. Есть ли способ / метод, который извлекал бы текстовое содержимое только из элемента root?

РЕДАКТИРОВАТЬ: Спасибо за ответ. Я использовал ту же идею удаления дочернего узла, чтобы получить желаемый результат. Вот синтаксис для java:

private void extractTextContent(HtmlElement htmlElement) {
    DomNode child = htmlElement.getLastElementChild();
    String tagname = "";
    if(child != null) {
        tagname = child.getTextContent();
        htmlElement.removeChild(tagname, 0);
    }
    String content = htmlElement.getTextContent();
}

1 Ответ

0 голосов
/ 26 марта 2020

Вы можете попробовать удалить дочерние узлы перед извлечением textContent.

private void extractTextContent(HtmlElement htmlElement) {
    DomNode child = htmlElement.getLastElementChild();
    String tagname = "";
    if(child != null) {
        tagname = child.getTextContent();
        htmlElement.removeChild(tagname, 0);
    }
    String content = htmlElement.getTextContent();
}

Я отредактировал свой ответ с помощью Java Синтаксис предоставлен @ XYZ

...