2015-10-02 42 views
1

我正在尝试编写一个程序来识别div中的id并返回id的名称。如何识别div内的id名称?

<div id="page0" class="subpage"> 
     <h2 id="RM10129"> Cold Startes </h2> 
     <div id="RM10129" class="menubox"></div> 
     <div id="RM10129" class="menubox"></div> 
     <h2 id="RM10130"> Main </h2> 
     <div id="RM10130" class="menubox"></div> 
     <div id="RM10130" class="menubox"></div> 

我希望我的程序能够返回ID“RM10129”和“RM10130”。这是可能的xpath?

+1

你目前使用什么包来解析HTML?向我们展示你到目前为止的代码。谢谢。 – alecxe

+0

#include Foon

回答

1

您可以使用starts-with()检查id开始与RM

//div[@id='page0']/div[starts-with(@id, 'RM') and @class = 'menubox']/@id 
0

你可以使用xpathlxml LIB的一部分:

import lxml.html 

ttt = """<div id="page0" class="subpage"> 
     <h2 id="RM10129"> Cold Startes </h2> 
     <div id="RM10129" class="menubox"></div> 
     <div id="RM10129" class="menubox"></div> 
     <h2 id="RM10130"> Main </h2> 
     <div id="RM10130" class="menubox"></div> 
     <div id="RM10130" class="menubox"></div>""" 


page = lxml.html.fromstring(ttt) 

print page.xpath('.//div[@class="menubox"]/@id') 

并继续进一步的验证。

0

这个xpath会返回你带有ID page0的DIV中的所有DIV ID。

//div[@id="page0"]/div/@id