2015-04-12 58 views
0

getbyxpath我有HTML像這樣:運行的HtmlUnit裏面getbyxpath

<div id="myId"> 
    <a href="#"> 
     <div class="name">Item1</div> 
     <span class="location">32143|2323</span> 
    </a> 
    <a href="#"> 
     <div class="name">Item1</div> 
     <span class="location">32143|2323</span> 
    </a> 
    <a href="#"> 
     <div class="name">Item1</div> 
     <span class="location">32143|2323</span> 
    </a> 
</html> 

使用爲的HtmlUnit的Java,我要抓住每一個錨的名稱和位置。我試着做一個getByXPath來拾取所有錨點,然後用for循環遍歷它們並運行另一個getByXpath來獲取div中的名稱。然而,列表中的單個項目顯然是對象,所以我無法運行第二個getByXPath。

我也嘗試使用「/ a/div [@ class ='name']」運行第一個getByXPath,通過對象的循環結果我無法找到正確的方法來返回div的內容。

回答

3

如果您的XPath選擇元素,你可以施放列表中所需的類型:

List<HtmlElement> divs = (List<HtmlElement>)document.getByXPath("//a/div[@class='name']"); 
+0

但我只需要使用id =本身份識別碼在div下的元素,還有,我無法弄清楚如何將內容從怪異元素中分離出來。 – Samir

+0

你也可以做'page.getElementById(「myId」)'並迭代子節點'getChildren()'。如果不正確理解,請完整解釋您的目的。 –

+0

出於某種原因,您的代碼返回0結果對我來說:http://pastebin.com/vQ8d1RGv – Samir