页面代码:
<div class='container'> <p> <b>Address:</b> Some address<br /> <b>Phone:</b> phone1,phone2<br /> <b>E-mail: </b><a href='mailto:somemail' >somemail</a><br /> <b>Site:</b><a href='somesite'>somesite</a> </p> </div>
我需要在< / b>之后选择文字在< br />之前使用XPATH.
在这种情况下,我需要获得“一些地址”或“phone1,phone2”等.
‘某些地址’需要在$var1中
$var2中的’phone1,phone2′
我尝试了.// * [@class=\”container\”]/p/text()[1]它没有用.
解决方法
试试这个吧
/div[@class="container"]/p/descendant-or-self::text()[ not(ancestor::b) and normalize-space(.) != "" ]
这将选择P元素树(具有类属性“container”的div)中不在B元素树内或为空的P元素树中的文本节点,例如,这会给你
>“一些地址”,
>“phone1,phone2”,
>“somemail”和
>“某个地方”.
另外看看这个XPath tutorial.