在htmlunit中获取td元素的值
Getting the value of td element in htmlunit
<td>
<span>hi</span>
<a>re</a>
hello
</td>
我有 DOM 元素结构,如上所示。
使用 htmlunit,我只想提取值 "hello",因为我有 HtmlElement 对象引用 "td" 节点。
我尝试使用 getTextContent(),但它 returns "hirehello",这是我不想要的。
查看文档,getTextContent
清楚地说它 return 是元素 和 其后代的文本,我没有看到任何return 的其他方法只是文本节点的总和,所以我认为你需要一个循环。例如,假设 element
指的是 td
元素:
StringBuffer sb = new StringBuffer(/*some appropriate size*/);
for (DomNode n : element.getChildNodes()) {
if (n.getNodeType() == Node.TEXT_NODE) {
sb.append(n.getTextContent());
}
}
String text = sb.toString();
请注意,您引用的结构中文本节点的总和 不是 只是 "hello"
,它前后都有空格.如果您只想 "hello"
,则需要 trim 关闭。
<td>
<span>hi</span>
<a>re</a>
hello
</td>
查看文档,getTextContent
清楚地说它 return 是元素 和 其后代的文本,我没有看到任何return 的其他方法只是文本节点的总和,所以我认为你需要一个循环。例如,假设 element
指的是 td
元素:
StringBuffer sb = new StringBuffer(/*some appropriate size*/);
for (DomNode n : element.getChildNodes()) {
if (n.getNodeType() == Node.TEXT_NODE) {
sb.append(n.getTextContent());
}
}
String text = sb.toString();
请注意,您引用的结构中文本节点的总和 不是 只是 "hello"
,它前后都有空格.如果您只想 "hello"
,则需要 trim 关闭。