我有一些HTML如下:
<div id="tvcap">
<div class="c" id="tads">
<ol>
<li>
<div class="vsc vsta">
<h3>
<a id="pa1" href="">
</a>
<a id="vpa1" href="http://www.link1.com">
Link 1 Text 1</a>
</h3>
<div>
<div class="kv kva">
<cite>
www.link1.com</cite>
</div>
</div>
<span class="ac">Link 1 Text2</span>
</div>
</li>
<li>
<div class="vsc vsta">
<h3>
<a id="pa2" href="">
</a>
<a id="vpa2" href="http://www.link2.com">Link 2 Text 1</a>
</h3>
<div>
<div class="kv kva">
<cite>www.link2.com</cite>
</div>
</div>
<span class="ac">Link 2 Text 3</span>
<div>
<div class="oslk">
</div>
</div>
</div>
</li>
</ol>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
可能会有未知数量的链接和文本,我希望迭代并能够访问每个链接和文本.
我正在使用简单的html dom解析器.
我找不到命令来到div id'vpa1'.
我试过这个,但它什么也没有回复:
foreach($html->find('a') as $element)
if ($element->id == "vpa1") echo $element->href . '<br>';
Run Code Online (Sandbox Code Playgroud)
如何根据id为vpa [$ i](vpa1,vpa2等)来获取每个链接和文本.
用于从任何网页中提取特定div id的内容的功能
下面的函数从指定的div中提取内容并返回它.如果找不到具有ID的div,则返回false.
function getHTMLByID($id, $html) {
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$node = $dom->getElementById($id);
if ($node) {
return $dom->saveXML($node);
}
return FALSE;
}
Run Code Online (Sandbox Code Playgroud)
$id是<div>您尝试提取的内容的ID ,$html是您的HTML标记.
用法示例:
$html = file_get_contents('http://www.mysql.com/');
echo getHTMLByID('tagline', $html);
Run Code Online (Sandbox Code Playgroud)
输出:
The world's most popular open source database
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9116 次 |
| 最近记录: |