Zend_Dom_Query предоставляет механизмы для запросов к
документам XML и (X)HTML с использованием селекторов XPath и CSS.
Он был разработан для того, чтобы помочь с функциональным тестированием
приложений MVC, но может также использоваться для быстрой разработки
кода, извлекающего нужные данные из выводимых данных приложения
(например, XHTML-кода, возвращаемого сайтом).
Zend_Dom_Query,
нужно инстанцировать объект Zend_Dom_Query,
при этом можно передавать содержимое документа, к которому должны
производиться запросы, в виде строки.
Установив документ, вы можете использовать методы
query() и queryXpath(). Эти методы будут
возвращать объект Zend_Dom_Query_Result, который
содержит в себе все найденные узлы.
Zend_Dom_Query от
применения связки DOMDocument + DOMXPath заключается в возможности
извлечения через селекторы CSS. Вы можете использовать все
перечисленное ниже, в любой комбинации:
|
Lorem ipsum
|
Zend_Dom_Query_Result реализует интерфейсы
Countable, Iterator, и
сохраняет результат как узлы DOMNode и элементы DOMElement.
Для примера рассмотрим следующий вызов, который производит выборку
из HTML-кода, приведенного выше:
Zend_Dom_Query также позволяет применять запросы
XPath через метод queryXpath(). Вы можете передавать
этому методу любые запросы XPath и в случае корректно составленного
запроса он будет возвращать объект
Zend_Dom_Query_Result.
Zend_Dom_Query имеет следующие
доступные для использования методы.
Zend_Dom_Query доступны следующие методы:
setDocumentXml($document): принимает строку
с содержимым документа HTML, к которому должны производиться
запросы.
setDocumentXhtml($document): принимает строку
с содержимым документа XHTML, к которому должны
производиться запросы.
setDocumentHtml($document): принимает строку
с содержимым документа HTML, к которому должны производиться
запросы.
setDocument($document): принимает строку без
указания типа документа. В этом случае
Zend_Dom_Query сам попытается определить тип
документа.
getDocument(): возвращает исходный документ,
переданный объекту.
getDocumentType(): возвращает тип документа,
переданного объекту. Это должна быть одна из
следующих констант класса Zend_Dom_Query:
DOC_XML, DOC_XHTML или
DOC_HTML.
query($query): производит запрос к документу
с использованием нотации селекторов CSS.
queryXpath($xPathQuery): производит запрос
к документу с использованием нотации XPath.
Zend_Dom_Query_Result
реализует интерфейсы Iterator и
Countable, поэтому может использоваться в
цикле foreach и с функцией count().
Кроме того, он предоставляет следующие методы:
getCssQuery(): возвращает запрос-селектор CSS,
который использовался для получения результата (если был).
getXpathQuery(): возвращает запрос XPath,
который использовался для получения результата.
Zend_Dom_Query неявным образом преобразует
запросы с селекторами CSS в запросы XPath, поэтому это
значение всегда будет заполняться.
getDocument(): возвращает объект DOMDocument,
к которому производился запрос.