2016-04-27 72 views
0

我有一個HTML像這樣:簡單DOM文檔迭代

<html> 
    <body> 
     <div class="somethingunneccessary"></div> 
     <div class="container"> 
     <div> 
      <p>text1</p> 
      <p>text2</p> 
      <p>text3</p> 
     </div> 
     <div> 
      <p>text4/p> 
      <p>text5</p> 
      <p>text6</p> 
     </div> 
     <div> 
      <p>text7</p> 
      <p>text8</p> 
      <p>text9</p> 
     </div> 
     <div> 
      <p>text10</p> 
      <p>text11</p> 
      <p>text12</p> 
     </div> 
     <div> 
      <p>text13</p> 
      <p>text14</p> 
      <p>text15</p> 
     </div> 
     </div> 
    </body> 
</html> 

我試圖做到的是以下幾點:

1 /循環在具有一類專區內的div元素container

2.在迭代過程中,我想抓取第3個p tag中的文本。

的循環部分是必不可少的,而不是僅僅通過自己切出p標籤

我有一些代碼,這樣做,但它不會做循環:

$doc=new DOMDocument(); 
$doc->loadHTML($htmlsource); 
$xpath = new DOMXpath($doc); 
$commentxpath = $xpath->query("/html/body/div[2]/div[5]/p[3]"); 
$commentdata = $commentxpath->item(0)->nodeValue; 

我如何遍歷每個內部div元素並提取第3個p標籤

就像我說的,循環是必不可少的。

+0

您是否嘗試過使用您的語言用於迭代對象的任何機制? –

+0

@ IgnacioVazquez-Abrams這就是我需要幫助。正在調整腳本遍歷容器div內部div元素 – slicks1

+0

那麼你所說的是,你不知道你的語言如何迭代? –

回答

0

期間,我要搶迭代來自第3個p標籤的文本

嘗試:

"//div[@class='container']/div/p[3]" 

這將返回所有第三P在格的所有DIV中有級集裝箱。

+0

這很好。我還有一個問題。如果我想要每個div內其他p元素的值。我怎樣才能改變這個查詢來獲得div的所有p標籤 – slicks1

+0

所有p都是'..../div/p'。 –

+0

您可以製作一個迭代div元素並將每個p元素存儲到多維數組的具體示例嗎? – slicks1

0

試試看

/html/body/div/div//p 

這應該只返回p元素XD

+0

請看看我更新的問題 – slicks1