Вообщем есть xml файл не я его структуру создаю Код (Text): <Code_List xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.mikado-parts.ru/WS/Service"> <Code_Search>5288</Code_Search> <List> <Code_List_Row> <ZakazCode>xgts-5288</ZakazCode> <Supplier>Gates</Supplier> <ProducerBrand>GATES</ProducerBrand> <ProducerCode>5288</ProducerCode> <Brand>GATES</Brand> <Country>USA</Country> <Name>Ремень ГРМ PowerGrip</Name> <Price>5.34</Price> <PriceRUR>221.59</PriceRUR> <Srock>?</Srock> <CodeType>Aftermarket</CodeType> <Source> <SourceProducer>GATES</SourceProducer> <SourceCode>5288</SourceCode> </Source> <PrefixLength>5</PrefixLength> </Code_List_Row> </List> </Code_List> делаю обработку данного xml кодом Код (Text): $xmlfiles = "prime.xml"; $xml3 = simplexml_load_file($xmlfiles); foreach ($xml3->xpath('/Code_List/List/Code_List_Row') as $item) { echo $item->ZakazCode."<br>"; } и ни чего не получается делаю просто принт р выводит всю структуру документа, пытаюсь вывести что то конкретное не чего не выводит! Наведите на мысль почему так? Но уже за все время решения данной проблемы я понял что проблема в строчке Код (Text): <Code_List xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.mikado-parts.ru/WS/Service"> так как я если сохраняю документ сам в ручную и делаю просто Код (Text): <Code_List> то все получается вывести отдельно
Код (Text): $xml3 = simplexml_load_file($xmlfiles); $namespaces = $xml3->getDocNamespaces(); $xml3->registerXPathNamespace('__empty_ns', $namespaces['']); foreach ($xml3->xpath('//__empty_ns:Code_List_Row') as $item)
Спасибо огромное! Тока мне не очень понятно что за алгоритм сейчас. То есть последовательно действий до foreach Если не сложно то можно объяснить?
У Вас в xml есть namespace у которого нет части после двоеточия. Код (Text): xmlns="http://www.mikado-parts.ru/WS/Service" Функция Код (Text): $namespaces = $xml3->getDocNamespaces(); Вернёт все неймспейсы документа. У этого неймспейса ключ массива будет просто '' - пустота дальше создаётся префикс для следующего запроса xpatch и в нем используется.
А вот такой еще вопрос возник, точнее быть проблема На локалке все заработало идеально все вывел что надо все обработал, залил на сам хост возникла проблема simplexml_load_file как то интересно обработал xml делаю принт р вывел не весь файл а тока первый тег и значение его! что может быть такое с ним?
счас попробую Добавлено спустя 2 минуты 5 секунд: Array ( [0] => [1] => [2] => 5288 [3] => [4] => ) вывел опять же начало тока документа
Ну значить файл такой... На пр. я видел RSS ленту которая отображалась всегда правильно, но у xml не было конца. А можешь как-то проверить что нужный файл правильный?
если я просто открываю файл браузером то он целый могу дать код Код (Text): $xml = "http://mikado-parts.ru/ws/service.asmx/Code_Search?Search_Code=5288&ClientID=38&Password=etka"; $xmlmikado = simplexml_load_file($xml); print_r ($xmlmikado); этот код на локальном хостинге мне выдает все хорошо! а вот на хостинг тока самое начало Добавлено спустя 13 минут 2 секунды: пока что тема закрыта вроде как нашел решение отпишу как полностью разберусь!