当我尝试使用以下代码时...返回td标记而不是td标记的值。
List<?> byXPath = page2.getByXPath("//tr[@class='metadata odd']/td");
System.out.println(byXPath.get(0).toString());
例如:如果标签是
<td class='metadata odd'>Arun</td>
结果是
<td class='metadata odd'>
....我需要结果是Arun。请帮助
答案 0 :(得分:1)
试试这个:
DomText domText = (DomText) form.getFirstByXPath("//tr[@class='metadata odd']/td/text()");
System.out.println(domText.getTextContent());
修改强>
如果您想获取所有元素,那么只需使用getByXPath
代替getFirstByXPath
即可。然后遍历返回的List(在你的问题中没有必要,所以我没有添加它)。
答案 1 :(得分:0)
您要查找的内容实际上是td
标记的文本子节点的字符串表示形式,而不是您当前请求的td
元素本身的字符串表示形式。
使用稍微不同的XPath表达式直接引用文本子节点,如下所示:
List<?> byXPath = page2.getByXPath("//tr[@class='metadata odd']/td/text()");
DomText textNode = (DomText)(byXPath.get(0));
System.out.println(textNode.toString());