Доброе время суток! Не получается забрать и вывести данные из файла xml. Подскажите, пожалуйста, заранее благодарю! Код (Text): <rs:data> <z:row param1='3000' param2='4000' param3='8000' /> </rs:data> Пытаюсь вывести с помощью этого php: Код (Text): <?php header("Content-Type: text/html; charset=utf-8"); $xml = simplexml_load_file("./file.xml"); foreach ($xml->data as $offer) { echo $offer->xpath('row[@param1="Параметр1"]')[0]; echo $offer->xpath('row[@param2="Параметр2"]')[0]; echo $offer->xpath('row[@param3="Параметр3"]')[0]; } ?> В итоге должно получиться так: 3000 4000 8000
Спасибо, но у меня проблема, видимо в том, что в названии "<z:row " присутствует двоеточие, обращаться не получается. По логике этот код работает Код (Text): <?php $xml = simplexml_load_file('test.xml'); echo $xml->row['param1']; ?> если в названии двоеточия нет и если бы было просто row, то вопрос был бы закрыт..
С xml это так не работает. Вам нужно почитать еще о пространстве имен. Вот хорошая статья. https://starcat.dp.ua/doc/wdh/xml03.htm
Помог brevis с другого форума. Может кому пригодиться: PHP: $previous_use_error = libxml_use_internal_errors(true); $xml = simplexml_load_file("./file.xml"); if ($row = $xml->{'z:row'}) { foreach ($row->attributes() as $attr => $value) { echo $attr . ': ' . $value . PHP_EOL; } } libxml_use_internal_errors($previous_use_error); https://glot.io/snippets/fs97gmxqhg
Есть. Вся необходимая информация по ссылкам выше. Если вкратце - прежде, чем работать с xml проверьте его валидатором.