У меня есть этот код
<?PHP
$content = '<html>
<head>
<title></title>
</head>
<body>
<ul>
<li style="border:0px" class="list" id="list1111">
<a href="http://www.example.com/" style="font-size:10px" class="mylinks">
<img src="logo.gif" width="235" height="97" alt="logo example" border="0"/>
</a>
</li>
<li style="border:0px" class="list" id="list2222">
<a href="http://www.example.com/2222222" class="mylinks">
second link
</a>
</li>
</ul>
</body>
</html> ';
$doc = new DOMDocument;
$doc->loadhtml($content);
$xpath = new DOMXPath($doc);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$url = $href->getAttribute('href');
echo $url ."<br />";
}
?>
Этот код очень прост, он просто извлекает все теги привязки из HTML-документа. Я нашел его здесь
То, что я хочу, более сложное :)
Я хочу получить все теги привязки + все дочерние и родительские теги и их атрибуты для каждого тега привязки
Например, результат, который я хочу получить, - это получение первого тега привязки примерно так
1-html
2-body
3-ul
4-li(class:list,id:list1111,style:etc....)
5-a(href:www.example.com etc..)
6-img(width:257 etc)
Я хочу выполнять итерацию с верхнего уровня на самый низкий уровень для каждого тега привязки, и я хочу иметь возможность получать атрибуты для каждого тега.
Для меня это очень сложно из-за "DOMXPath" :( однако для некоторых из вас это может быть легко
У вас есть вопросы?
Ты знаешь как решить эту проблему?
Заранее спасибо
2 ответа
XPaths должен сделать так, чтобы вам не нужно было повторять. Чтобы получить важные атрибуты li
, используйте XPath, например:
//li/@class
Или
//li/@id
Который должен дать вам повторяемый объект, который вы можете использовать.
Вот дополнительная информация о XPath.
Возможно, вам следует написать простую таблицу стилей XSLT. Сопоставьте тег <a>
, и тогда ancestor::* предоставит все родительские узлы, child::* предоставит вам все дочерние узлы — у вас будет гораздо больше возможностей, используя простой синтаксис XPath через XSLT.
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.