1

我找不到使用com.gargoylesoftware.htmlunit.html 仅从根元素中提取文本内容的任何方法。下面是一些例子:

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

我想从根元素中提取文本内容(在本例中为“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有相同问题的人。是否有任何方式/方法可以仅从根元素中提取文本内容?

编辑: 谢谢你的回答。我使用相同的想法删除子节点来获得我想要的输出。这是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();
}
4

1 回答 1

1

您可以尝试在获取 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();
}

我已经使用@XYZ 提供的 Java 语法编辑了我的答案

于 2020-03-26T07:52:14.723 回答