StealtH
Новичок
xPath как по условию поиска получить в виде результата все дочерние объекты ноды
Добрый день уважаемый ALL!
Вкратце опишу суть и смысл задачи:
Есть приложение, которое реализовано на PHP4 с хранением вводимых данных в XML(такой подход использовался из-за неточно сформированного конечным пользователем ТЗ, как обычно, сначало надо было одно, потом планы поменялись в сторону наращивания функционала). Данные - клиентские заказы, объем которых очень мал. На момент старта проекта предполагалось, что приложение будет не очень часто использоваться, и основной формат обмена должен был быть именно XML, для просты экспорта в Excel. Как обычно - аппетит приходит во время еды и со временем потребовалось расширение функционала, так же начал рости объем данных. Обработка большого объема XML-данных "отнимает" большой объем ресурсов, по-этому для реализации поиска определенных данных в XML-файле уже не возможно дальше продолжать через механизмы пхп. Именно по-этому взгляд упал на Xpath, при первых тестах впечатление сложилось положительное, но начали возникать вопросы.
При поиске по определенному параметру необходимо, чтобы в результирующий набор данных включалась вся ветка данных в которой было найдено соответствующее совпадение и чтобы данные отдавались в виде массива. Так же не понятно как сделать условием выборки по нескольким параметрам.
Просьба сильно не пинать за возможно глупые вопросы т.к. я об xPath узнал буквально вчера методам гугления, по-этому опыта работы с ним пока что нет. По-этому, если есть возможность - киньте линкой на документации по сабжу. Ниже пример кода, на которым сейчас провожу эксперименты. Интересует именно принцип и порядок формирования условий для выборки и как правильно с точки зрения синтаксиса сформировать запрос, чтобы в переменную $result были отданы все дочерние объекты ноды transfer
Добрый день уважаемый ALL!
Вкратце опишу суть и смысл задачи:
Есть приложение, которое реализовано на PHP4 с хранением вводимых данных в XML(такой подход использовался из-за неточно сформированного конечным пользователем ТЗ, как обычно, сначало надо было одно, потом планы поменялись в сторону наращивания функционала). Данные - клиентские заказы, объем которых очень мал. На момент старта проекта предполагалось, что приложение будет не очень часто использоваться, и основной формат обмена должен был быть именно XML, для просты экспорта в Excel. Как обычно - аппетит приходит во время еды и со временем потребовалось расширение функционала, так же начал рости объем данных. Обработка большого объема XML-данных "отнимает" большой объем ресурсов, по-этому для реализации поиска определенных данных в XML-файле уже не возможно дальше продолжать через механизмы пхп. Именно по-этому взгляд упал на Xpath, при первых тестах впечатление сложилось положительное, но начали возникать вопросы.
При поиске по определенному параметру необходимо, чтобы в результирующий набор данных включалась вся ветка данных в которой было найдено соответствующее совпадение и чтобы данные отдавались в виде массива. Так же не понятно как сделать условием выборки по нескольким параметрам.
Просьба сильно не пинать за возможно глупые вопросы т.к. я об xPath узнал буквально вчера методам гугления, по-этому опыта работы с ним пока что нет. По-этому, если есть возможность - киньте линкой на документации по сабжу. Ниже пример кода, на которым сейчас провожу эксперименты. Интересует именно принцип и порядок формирования условий для выборки и как правильно с точки зрения синтаксиса сформировать запрос, чтобы в переменную $result были отданы все дочерние объекты ноды transfer
PHP:
<?
$dom1 = domxml_open_file("test.xml");
$context = xpath_new_context($dom1);
$result = xpath_eval($context, '/neworders/transfer/customer/company="companyName"');
print_r($result);
?>