xpath能获取div下的所有tr中的td内容么

示例:<divid="demo1"><tableclass="table"width="244"border="0"style="font-family:'宋体';fon... 示例:

<div id="demo1">
<table class="table" width="244" border="0" style="font-family:'宋体'; font-size:12px;">
<tbody>
<tr>
<td>岭北</td>
<td>29</td>
<td>
<img width="14" height="14" src="images/face_1.gif">
</td>
<td class="t2" style="color:00e400;">优</td>
<td>—</td>
</tr>
<tr>
<td>松北商大</td>
<td>37</td>
<td>
<img width="14" height="14" src="images/face_1.gif">
</td>
<td class="t2" style="color:00e400;">优</td>
<td>—</td>
</tr>
</table>
</div>

我要获取上面的 (岭北 29 优) 和 (松北商大 37 优)应该怎么用xpath获取 tr下的所有td文本

page.putField("site", page.getHtml().xpath("//div[@id='demo1']/table/tbody//tr//td"));只能获取第一个tr中的第一个td文本

要写在java类中,在后台执行,不要前台页面
page.putField("site", page.getHtml().css("div.demo2").links().all());
这种方法应该怎么用

请写详细代码,谢谢
展开
 我来答
小白聊电子科技
高粉答主

2020-03-13 · 专注电子数码问题解答
小白聊电子科技
采纳数:775 获赞数:75470

向TA提问 私信TA
展开全部

1、首先自己编写了一个网页。

2、如图,在浏览器中打开网页。然后//div,就可以找到页面中的所有div了,因为//表示的是任意目录下查找。如图,页面有两个div,所以可以找到两个。

3、还可以用类来排除多余的div,比如要查找类为a的div,可以在div后面用[@class="类名"]来指定,这样没有类名a的div就会被过滤掉,当然,还可以用id,把class改为[@id="id名"]即可。

4、那么如果想找div下面的a标签怎么办,同样,还是用//,这样div下面的非a标签就会被跳过,直接去找a标签。

5、如果要获取a标签的href,那么可以获取到a标签后用/@href即可获得。

6、如果是获取文本的话,可以用text()这个方法,就会得到a标签里面的内容。

7、如图,斜杠/表示的是获取子元素,比如div下面有两个子元素p,那么//div[2]/p获取的就是第二个div的子元素p。这样简单的xpath就分析完了。

rockyPig
推荐于2017-11-25 · TA获得超过253个赞
知道答主
回答量:71
采纳率:100%
帮助的人:31.6万
展开全部
  1. 首先通过xpath的all()返回一个list<String>的html字符串集合

    List<String> trs = page.getHtml().xpath( "//tr" ).all();

  2. 然后将这个集合循环迭代出来


    for( String tr : trs ) {

        //下边两行是将html中的tr和td替换成ul和li. 

        //因为在我自己写的代码中将tr这个字符串转成html对象的时候,tr和td标签都不见了.

        tr = tr.replaceAll( "tr", "ul" );

        tr = tr.replaceAll( "td", "li" );

        Html html = new Html( tr );

        

        //TODO 剩下的内容就可以从这个html对象中获取了

        //这个就是你想要的"岭北"和"松北商大"

        addr = html.xpath( "//ul/li[1]/text()" ).toString();

    }

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
omyschool
2018-11-01 · TA获得超过194个赞
知道答主
回答量:60
采纳率:100%
帮助的人:12.8万
展开全部
使用xpath
//*[@id="demo1"]//td/text()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式