如何仅从根元素中提取文本内容 - java、com.gargoylesoftware.htmlunit.html
How can I extract text content only from root element - java, com.gargoylesoftware.htmlunit.html
我找不到任何方法来使用 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 有相同问题的人。是否有任何 way/method 仅从根元素中提取文本内容?
编辑:
谢谢你的回答。我使用删除子节点的相同想法来获得我想要的输出。以下是 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语法编辑了我的答案
我找不到任何方法来使用 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 有相同问题的人。是否有任何 way/method 仅从根元素中提取文本内容?
编辑: 谢谢你的回答。我使用删除子节点的相同想法来获得我想要的输出。以下是 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语法编辑了我的答案