代码是这样的:
$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
如果我打印/回显,“print_r($ b2-&gt; 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';
有任何帮助吗? 提前谢谢。
答案 0 :(得分:0)
您应该检查它是否具有类似的属性。
获取每个元素中的所有属性
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;
}
}
您需要添加一些检查以确保您尝试选择的属性确实存在。这样您就不会尝试抓取href
代码上的span
属性。