У меня есть этот код:DomXML xpath Что мне делать дальше?
$reader = new DOMDocument();
$reader->loadHTML($shell);
$xpath = new DomXPath($reader);
$xpath->registerNamespace('html','http://www.w3.org/1999/xhtml');
$res = $xpath->query('descendant-or-self::*[contains(@class,"content")]');
print_r($res);
$ оболочки это просто переменная, содержащая следующий HTML-код:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="en-us" />
<title>Hello World</title>
</head>
<body>
<div class="content">
Hello World!!
</div>
</body>
</html>
Если я правильна XPath запрос:
descendant-or-self::*[contains(@class,"content")]
является предполагается получить div с классом «контент». Однако, когда я печатаю массив все, что я вижу пустой объект:
DOMNodeList Object
(
)
Означает ли это, что техника его подводит запрос работы? Является ли язык запросов DomXPath отличным от SimpleXML Xpath, потому что запрос работает с SimpleXML?
Если он работает, как просматривать и изменять согласованные узлы?
Спасибо, запрос работает. Итак, как я мог бы сейчас приступить к редактированию атрибутов и данных согласованных узлов? –
Я бы сказал, посмотрите на спецификацию 'DOMElement' по адресу http://www.php.net/manual/en/class.domelement.php, вы, вероятно, ищете функцию setAttribute,' childNodes' (также DOMNodeList), 'nodeValue' и т. д. API немного привыкает, но по большей части является согласованным API, поэтому любой DOM-праймер (PHP или иначе), скорее всего, даст вам хорошее представление в его работе (и проверить комментарии в руководстве PHP). – Wrikken