首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >文本节点xpath的Jsoup选择器

文本节点xpath的Jsoup选择器
EN

Stack Overflow用户
提问于 2015-02-18 01:38:28
回答 1查看 615关注 0票数 1

HTML代码张贴在末尾,我想选择"OF“元素。这是CSS选择器

代码语言:javascript
运行
复制
Elements position = doc.select("#content > table:nth-child(4) > tbody > tr > td:nth-child(1) > table > tbody > tr:nth-child(1) > td > div:nth-child(5) > strong:nth-child(4)");

for (Element p : position) {
    System.out.println(p);
}

这是输出

代码语言:javascript
运行
复制
p returns "<strong>Position:</strong>"
p.text() returns "Position:"

当我高亮显示“OF”时,使用chrome中的xpath:

代码语言:javascript
运行
复制
//*@id="content"]/table[1]/tbody/tr/td[1]/table/tbody/tr[1]/td/div[3]/text()[4]

HTML代码

代码语言:javascript
运行
复制
<div style="font-size: 10pt; padding-left:5px;">
     <strong>Birthdate:</strong> 8/7/1991 (23 y, 6 m, 10 d) &nbsp;&nbsp;&nbsp;&nbsp;
     <strong>Bats/Throws:</strong> R/R &nbsp;&nbsp;&nbsp;&nbsp;
     <strong>Height/Weight:</strong> 6-2/230 &nbsp;&nbsp;&nbsp;&nbsp;
     <strong>Position:</strong> OF<br /><b>Drafted:</b> <a href="statss.aspx?playerid=10155&position=OF#draft" style="text-decoration:none;">2009 June Amateur Draft - Round: 1, Pick: 25, Overall: 25, Team: Los Angeles Angels</a><br />
     <strong>Contract:</strong> <a href="statss.aspx?playerid=10155&position=OF#contract" style="text-decoration:none;">$144.5M / 6 Years (2015 - 2020)</a>
</div>
<div style="font-size: 10pt; padding-left:5px;">
      <strong>Birthdate:</strong> 8/7/1991 (23 y, 6 m, 10 d) &nbsp;&nbsp;&nbsp;&nbsp;
      <strong>Bats/Throws:</strong> R/R &nbsp;&nbsp;&nbsp;&nbsp;
      <strong>Height/Weight:</strong> 6-2/230 &nbsp;&nbsp;&nbsp;&nbsp;
      <strong>Position:</strong> OF<br /><b>Drafted:</b> <a href="statss.aspx?playerid=10155&position=OF#draft" style="text-decoration:none;">2009 June Amateur Draft - Round: 1, Pick: 25, Overall: 25, Team: Los Angeles Angels</a><br />
      <strong>Contract:</strong> <a href="statss.aspx?playerid=10155&position=OF#contract" style="text-decoration:none;">$144.5M / 6 Years (2015 - 2020)</a>
</div>

如果有人感兴趣的话,这是http://www.fangraphs.com/statss.aspx?playerid=10155&position=OF的页面

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-18 01:52:35

您不能为文本节点编写css选择器("OF“是包含在目标div元素中的第四个文本节点)。因此,您需要像这样以编程的方式进行抓取(需要>= 1.6.2):

代码语言:javascript
运行
复制
// select container div element
Elements position = doc.select("#content > table:nth-child(4) > tbody > tr > td:nth-child(1) > table > tbody > tr:nth-child(1) > td > div:nth-child(5)");
// extract the element from the list returned
Element element = ....
// TODO will need to check that the List exists and have at least four elements here
TextNode ofNode = element.textNodes().get(4);
ofNode.text(); // this will contain "OF"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28574500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档