0

当我尝试使用以下代码时...返回 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。请帮助

4

2 回答 2

1

尝试这个:

DomText domText = (DomText) form.getFirstByXPath("//tr[@class='metadata odd']/td/text()");
System.out.println(domText.getTextContent());

编辑:

如果您想获取所有元素,那么只需使用getByXPath而不是getFirstByXPath. 然后遍历返回的列表(在你的问题中没有必要,所以我没有添加)。

于 2012-06-14T14:04:30.257 回答
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());

另请参阅此问题

于 2012-06-14T13:00:40.980 回答