Код выглядит примерно так:
$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-> 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;
}
}
Вам нужно будет добавить некоторые проверки, чтобы убедиться, что атрибут, который вы пытаетесь выбрать, действительно существует. Таким образом, вы не пытаетесь захватить атрибут href
в теге span
.