简单 dom 文档迭代
Simple dom document iteration
我有一个 HTML 这样的:
<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 中的 div 个元素 class 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 标签。
就像我说的,循环是必不可少的。
您可能需要查询属性:php xpath get attribute value
$xpath->query("/html/body/div[@class='container']");
试试
/html/body/div/div//p
那应该return只有p个元素XD
During the iteration I want to grab the text from the 3rd p tag
尝试:
"//div[@class='container']/div/p[3]"
这应该 return div 内的所有第三个 p div 与 class 容器。
我有一个 HTML 这样的:
<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 中的 div 个元素 class 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 标签。
就像我说的,循环是必不可少的。
您可能需要查询属性:php xpath get attribute value
$xpath->query("/html/body/div[@class='container']");
试试
/html/body/div/div//p
那应该return只有p个元素XD
During the iteration I want to grab the text from the 3rd p tag
尝试:
"//div[@class='container']/div/p[3]"
这应该 return div 内的所有第三个 p div 与 class 容器。