Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅从根元素java.com.gargoylesoftware.htmlunit.html提取文本内容_Java_Html_Web Scraping_Htmlelements - Fatal编程技术网

如何仅从根元素java.com.gargoylesoftware.htmlunit.html提取文本内容

如何仅从根元素java.com.gargoylesoftware.htmlunit.html提取文本内容,java,html,web-scraping,htmlelements,Java,Html,Web Scraping,Htmlelements,使用com.gargoylesoftware.htmlunit.html,我找不到任何方法仅从根元素提取文本内容。 以下是一些例子: <td> W 03:10 PM-04:25 PM <strong> <br> Hybrid (50%+ in-person) </strong> </td> 输出: W 03:10 PM-04:25 PMHybrid (50%+ in-person) 期望输出: W 0

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

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

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();
}

您可以在获取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语法编辑了我的答案。在获取文本内容之前,您可以尝试删除子节点

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语法编辑了我的答案,哇,非常感谢!尽管代码语法有点不正确,但我还是使用了按标记名删除子节点的相同想法!这太棒了,非常感谢来自javascript世界的我。我只是有这个想法。你能用正确的语法编辑我的答案吗。谢谢,哦,对不起,我是新来StackOverFlow问这个问题的。我接受了你的回答!另外,如果你能为以后可能有这个问题的人提供正确的语法。对,这是重要的部分。哇,非常感谢!尽管代码语法有点不正确,但我还是使用了按标记名删除子节点的相同想法!这太棒了,非常感谢来自javascript世界的我。我只是有这个想法。你能用正确的语法编辑我的答案吗。谢谢,哦,对不起,我是新来StackOverFlow问这个问题的。我接受了你的回答!另外,如果你能为以后可能有这个问题的人提供正确的语法,这是很重要的。