在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 关闭。