2016-04-25 216 views
-2

我想从同一个节点中选择两个元素。下面的代码:如何使用Xpath从同一节点中选择两个或多个元素?

<div > 
    <span >First element to select:</span> 
    <span ></span> 
    <strong >Second element to select</strong> 
</div> 

我试图用这样的:

$x('//div/span/text()') 

,我得到一个这样的数组:

["First element", " "] 

反正是有得到:

["First element", "Second element"] 

也许把它放到python dictio中进制?并且有:

dict = {'First element' : 'Second element'} 

非常感谢帮助

+0

没有与[[id =“details”]匹配的节点。请[编辑]你的问题,并包括符合你的代码的HTML。 – 2016-04-25 07:30:01

+0

'$ x'是什么?这不是Python。 – 2016-04-25 07:34:59

回答

1

您可以使用以下XPath:

//*[@id="details"]//div/*/text() 

,或者如果你特别想只从spanstrong得到文本节点:

//*[@id="details"]//div/*[self::span|self::strong]/text() 

跳过空文本节点,添加谓词[normalize-space()]

//*[@id="details"]//div/*/text()[normalize-space()] 
+0

超级!谢谢!但是这产生了这个[“第一元素”,“”,“第二元素”]。仅可以生成[“第一个元素”,“第二个元素”]? – user1463152

+0

过滤列表。 – 2016-04-25 07:30:55

+0

@ user1463152检查我的回答中的第3个XPath – har07

相关问题