В настоящее время у меня есть хороший класс, который генерирует HTML и позволяет мне создавать страницы, не беспокоясь о таких вещах, как закрытие тегов, правильное вложение или четкое форматирование. Синтаксис простой и понятный,
//Create an anchor tag
$anchor = new Tag("a", array("name"=>"anchor");
//Create a paragraph
$paragraph = Tag::Craft("p", "Lorem ipsum dolor sit amet, consectetur.");
//Create a container for them and add them;
$div = new Tag("p", "id='container'");
$div->add($anchor);
$div->add($paragraph);
echo $div;
Создает:
<div id="container">
<a name="anchor" />
<p>Lorem ipsum dolor sit amet, consectetur.</p>
</div>
Это все хорошо, я могу быстро создавать теги, заполнять их контентом и другими тегами и выводить их аккуратно. Однако я не могу ничего сделать, взять существующий html и разобрать его. Или найти тег, используя что-то вроде xPath.
Насколько я могу судить, у меня есть 2 варианта:
- Запишите функцию xPath и синтаксический анализ в мой инструмент Tag. Отнимает много времени, раздражает, и, вероятно, усилия лучше потратить в другом месте.
- Использовать объекты DOM. Очень скудная документация и местами не полностью выпеченная. Тем более что PHP производственной среды отстает на несколько шагов. Также это будет использоваться для HTML, а не для XML, что может вызвать много ошибок и спама в журнале.
Есть мысли о том, куда мне идти отсюда? Или опыт использования DOM для достижения этой цели?