代码是这样的:
$b = $xpath->query('//td[@class="abc"]');
foreach ($b as $b2) { /*contents*/ }
在td内部,这些内容将在那里:
<h2><a href="http://www.example.com/" title="this is link">Link Title</a>
<span class="spanclass">Spinning</span></h3>
<div class="xyz">ABC XYZ abc xyz</div>
<span class="phr">Style</span>red
如果我打印/echo,"print_r($b2->nodeValue);",内容将是这样的:
Link Title
Spinning
ABC XYZ abc xyz
Style red
现在试过了,每个$b2:里面都有这个代码
foreach ($xpath->query('.//a[@href]', $b2) as $child) {
print_r($child->nodeValue);
}
答案来了:
Link Title
我需要这些信息从那里:
$title = 'Link Title';
$titlelink = 'http://www.example.com';
$spanclassinfo = 'Spinning';
$stylerandom = 'red';
有什么帮助吗?提前谢谢。
您应该检查它是否具有类似的属性。
获取每个元素中的所有属性
foreach ($b as $b2) {
if ($b2->hasAttributes()) {
foreach ($p->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
echo 'Attribute ' . $name . ' - ' . $value . '<br />';
}
}
}
从元素中获取特定属性
foreach ($b as $b2) {
if ($b2->hasAttributes()) {
$titlelink = $b2->attributes->getNamedItem('href')->value;
}
}
您需要添加一些检查,以确保您试图选择的属性确实存在。这样就不会试图获取span
标记上的href
属性。