Помогите разобраться с XML ответом!

Pokrowsky

Новичок
И так теперь все показывает как надо.var_dump($response) показывает ответ от сервера. с этим разобрались. дальше я использую SimpleXML, для того чтобы получить инфу. но SimpleXML хочет simplexml_load_file(). то есть файл в формате XML . Задача как информацию в переменной засунуть в xml файл.
 

Pokrowsky

Новичок
перечитай топик сначала
Да вот мы подшли к тому чего мне в самом конце надо получить

и у тебя нет идей как это сделать?
Вот ищу в поисковиках, но пока что то не удачно или гугл просто не понимает меня что я от него хочу:)
 

Фанат

oncle terrible
Команда форума
то есть по запросу "как записать в файл на РНР" гугл ничего не находит?
совсем от рук отбился, негодник.
видимо, очень нетривиальная штука, эта работа с файлами в РНР
 

Pokrowsky

Новичок
PHP:
$fp = fopen("bla.xml", "w");
       
        $file = 'bla.xml';
        // Открываем файл для получения существующего содержимого
        $current = file_get_contents($file);
        // Добавляем нового человека в файл
        $current .= $response;
        // Пишем содержимое обратно в файл
        file_put_contents($file, $current);
Все круто, все создется все пишится в файл. Так теперь у меня есть xml файл, то что я и хотел, теперь я могу работать с SimpleXML. Но не тут то было,

PHP:
$xmlbla = simplexml_load_file('bla.xml');

                    $soap = new SimpleXMLElement('bla.xml');
                   
                    echo $PricedItineraries->PricedItinerary[0]->Currency;
Пишет мне

Код:
Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Start tag expected, '<' not found in D:\OpenServer\domains\amadeus\index.php on line 19

Warning: SimpleXMLElement::__construct(): bla.xml in D:\OpenServer\domains\amadeus\index.php on line 19

Warning: SimpleXMLElement::__construct(): ^ in D:\OpenServer\domains\amadeus\index.php on line 19

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in D:\OpenServer\domains\amadeus\index.php:19 Stack trace: #0 D:\OpenServer\domains\amadeus\index.php(19): SimpleXMLElement->__construct('bla.xml') #1 {main} thrown in D:\OpenServer\domains\amadeus\index.php on line 19
 

Pokrowsky

Новичок
Нашел ошибку вот эту строчку удалил $soap = new SimpleXMLElement('bla.xml'); ошибки исчезли, но теперь вообще ничего нету
 

Pokrowsky

Новичок
Походу я не правильно создаю вот эту строчку

PHP:
echo $PricedItineraries->PricedItinerary[0]->Currency;
Код:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soap:Body>
        <SearchFlightResponse xmlns="http://epowerv5.amadeus.com.tr/WS">
            <OTA_AirLowFareSearchRS Version="0">
                <HasMoreResult>false</HasMoreResult>
                <Success />
                <PricedItineraries>
                    <PricedItinerary Currency="USD" ProviderType="AmadeusProvider" SequenceNumber="0">
вот начало кода xml вот там есть Currency="USD" мне надо вот этот Currency="USD" вытащить
 

Pokrowsky

Новичок
SimpleXML
Simplexml support enabled
Revision $Id: a915862ec47f9589309acc4996ca8f6179788746 $
Schema support enabled

phpinfo() показывает что включено, но выдает Fatal error: Call to undefined function simlexml_load_string() in D:\OpenServer\domains\amadeus\index.php on line 19
 

Pokrowsky

Новичок
PHP:
object(SimpleXMLElement)#1 (0) { }
вот это выдает вот это

PHP:
$xml = simplexml_load_string($response);
var_dump($xml);
правда я так и не понял что это
PHP:
object(SimpleXMLElement)#1 (0) { }
ну думаю это хорошо

Да нет не хорошо, по примерам вообще другое пишет
 
Последнее редактирование:

Pokrowsky

Новичок
Странно почему вот это
PHP:
$xml = simplexml_load_string($response);
var_dump($xml);
не показывает ничего,
а вот это
PHP:
echo htmlentities($xmlbla->asXML(), ENT_QUOTES, 'utf-8');
показывает то что в файле, прикольно однако
 

AnrDaemon

Продвинутый новичок
PHP:
$response = $xml->xpath('/soap:Envelope/soap:Body/*');
print_r($response);
Как получить напрямую, не соображу. Там смена NS и xpath обрывает цепочку.
Но данные все есть, достать проблемы быть не должно.
 
Сверху