Я анализирую HTML-документ с XPATH и хочу сохранить все внутренние html-теги.
Рассматриваемый html является неупорядоченным списком со многими элементами списка.
<ul id="adPoint1"><li>Business</li><li>Contract</li></ul>
Я анализирую документ, используя следующий код PHP
$dom = new DOMDocument();
@$dom->loadHTML($output);
$this->xpath = new DOMXPath($dom);
$testDom = $this->xpath->evaluate("//ul[@id='adPoint1']");
$test = $testDom->item(0)->nodeValue;
echo htmlentities($test);
По какой-то причине в выводе всегда отсутствуют теги html. Я предполагаю, что это потому, что XPATH не был предназначен для использования таким образом, но есть ли вокруг этого?
Мне бы очень хотелось продолжить использовать XPATH, поскольку я уже использую его для анализа других областей страницы (отдельных элементов href) без проблем.
РЕДАКТИРОВАТЬ: я знаю, что есть лучший способ получить данные, перебирая дочерние элементы UL. Есть более сложная часть страницы, которую я также хочу проанализировать (блок javascript), но я пытаюсь привести более простой для понимания пример.
Фактический блок кода, который я хочу, это
<script language="javascript">document.write(rot_decode('<u7>Pbagnpg Qrgnvyf</u7><qy vq="pbagnpgQrgnvyf"><qg>Cu:</qg><qq>(58) 0078 8455</qq></qy>'));</script>
Проблема в том, что он пропускает все закрывающие теги, но сохраняет открывающие теги. Я предполагаю, что это потому, что XPATH пытается анализировать внутренние элементы, а не просто обрабатывает его как строку.
Если я попытаюсь выбрать элемент script с помощью
$testDom = $this->xpath->evaluate("//div[@id='businessDetails']/script");
$test = $testDom->item(0)->nodeValue;
echo htmlentities($test);
Мой вывод будет таким, что, как вы видите, отсутствуют все закрывающие теги.
document.write(rot_decode('<u7>Pbagnpg Qrgnvyf<qy vq="pbagnpgQrgnvyf"><qg>Cu:<qq>(58) 0078 8455'));