2016-04-27 73 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