我将使用什么代码来获取包含 id 和类的 div 的信息?例如,我将如何使用 PHP Simple DOM Parser 来查看这个 div?
<div id="the-id" class="the-class">
我知道$html->find('div[id=the-id]', 0);
如果 div 中只有一个 id,我会使用它,但是如何解析具有类和 id 的 div?
你能扩展类似css的选择器吗?
我没有测试过,但我认为以下任何一项都应该产生你想要的结果。
$html->find('div.the-class[id=the-id]', 0);
$html->find('div.the-class#the-id', 0);
$html->find('div[id=the-id][class=the-class]', 0); // only if that's the only
$html->find('div[id=the-id][class~=the-class]', 0); // even if there's multiple classes
简单的 dom 解析器查询字符串就像 css 一样工作。要查找 id 为“the-id”的 div,请使用->find('div#the-id')
. 大概,您有唯一的 ID,这就是您所需要的。
如果你真的想要,你可以使用->find('div#the-id.the-class')
,但通常没有必要那么具体。
$html->find('#the-id .the-class', 0);
//or
$html->find('[id=the-id] [class=the-class]', 0);
用空格分隔元素。
// Find all <li> in <ul>
$es = $html->find('ul li');
// Find Nested <div> tags
$es = $html->find('div div div');
// Find all <td> in <table> which class=hello
$es = $html->find('table.hello td');
// Find all td tags with attribite align=center in table tags
$es = $html->find(''table td[align=center]');
// Find all <li> in <ul>
foreach($html->find('ul') as $ul)
{
foreach($ul->find('li') as $li)
{
// do something...
}
}
// Find first <li> in first <ul>
$e = $html->find('ul', 0)->find('li', 0);
您确定要在 php 中执行此操作吗?在 javascript 中执行此操作非常简单
var elements = document.getElementsByClassName("the-class");
for (var element in elements)
{
var id = element.getAttribute("id");
}
或者...
var elements = document.getElementsByTagName("div");
for (var element in elements)
{
var id = element.getAttribute("id");
var class_name = element.get.Attribute("class");
}