Синтаксический анализ HTML для возврата правил CSS из идентификаторов и атрибутов классов с помощью PHP
Я ненавижу записывать много правил CSS, а затем вводить в них свои стили, поэтому я хотел бы разработать крошечный php-скрипт, который бы анализировал HTML, который я бы передал ему, а затем возвращал пустые правила CSS.
Я решил использовать DOMDocument PHP.
Вопрос в следующем: как я мог бы пройти через всю структуру? (Я видел, что, например, в DOMDocument есть только getElementByTag или getElementById и, например, нет getFirstelEmEnt)
Я только хочу получить идентификаторы и классы в данном блоке HTML-кода, я бы передал такие вещи, как:
<div id="testId">
<div class="testClass">
<span class="message error">hello world</span>
</div>
</div>
Я только хочу знать, как я мог бы пройти через каждый узел?
Спасибо!
2 answers
Расширение SimpleXML для PHP может вам помочь. Он отлично работает для навигации по дереву HTML.
Вы можете передать звездочку (*) в getElementsByTagName
чтобы получить все теги, а затем просмотреть их...
<?php
$nodes = $xml->getElementsByTagName("*");
$css = "";
for ($i = 0; $i < $nodes->length; $i ++)
{
$node = $nodes->item($i);
if ($node->hasAttribute("class")) {
$css = $css . "." . $node->getAttribute("class") . " { }\n";
} elseif ($node->hasAttribute("id")) {
$css = $css . "#" . $node->getAttribute("id") . " { }\n";
}
}
echo $css;
?>