2014-12-06 117 views
0

在这个例子中我有这样的代码:前置兄弟返回空节点

<table class="basicinfo" cellspacing="0"> 
    <tr class="header"> 
    <td colspan="3"> 
     <div> 
     <h2 class="prod_card">Basic info</h2> 
     </div> 
    </td> 
    </tr> 

    <tr class="row2 item"> 
    <td class="cell0"> 
     <div> 
     Year 
     </div> 
    </td> 

    <td class="cell1"> 
     <div> 
     2005 
     </div> 
    </td> 
    </tr> 

    <tr class="row3 item alt"> 
    <td class="cell0"> 
     <div> 
     Extra 
     </div> 
    </td> 

    <td class="cell1"> 
     <div> 
     - 
     </div> 
    </td> 
    </tr> 
</table> 

现在,我想(比如说)year。我试图在divYear内容之后获得下一个div的内容。

我使用这个XPath没有成功:

//div[preceding-sibling::div = 'Year'] 

而且任何人都知道一个好的网站开始学习的XPath?提前致谢!

回答

0

以下XPath

//div[parent::td/preceding-sibling::td//div[normalize-space()= 'Year']] 

有结果

<div>2005</div> 

你的XPath没有工作,因为div你正在寻找有没有div元素为preceding-siblingtdparenttdpreceding-sibling::td包含一个具有文字“年”的div - td//div。使用normalize-space()返回此div的文本,而不会在检查相等性时需要任何空格。

仅供参考:normalize-space(),并且当您询问优质资源时 - 我不想推荐任何特别的资源,但您应该查看以下信息中提到的资源:https://stackoverflow.com/tags/xpath/info(如果尚未完成),对于XPath轴,这是一个很好的可视化:http://www.xmlplease.com/axis

相关问题