Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
 Аватар для SpiritAbsolute
5 / 5 / 1
Регистрация: 07.08.2013
Сообщений: 75

SimpleXML и множество атрибутов

23.12.2013, 15:43. Показов 3671. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем! Задача такая:
Нужно из этого xml файла http://gw.edostavka.ru:11443/pvzlist.php выбрать все атрибуты CityCode.
Пытаюсь это реализовать с помощью SimpleXML.
PHP
1
2
$back_xml_pvz = new SimpleXMLElement(curl_exec($ch));
$city_code = htmlentities((string)$back_xml_pvz->Pvz['CityCode']);
С помощью вот такого кода получается получить только первый CityCode 863.

Как получить из всех узлов Pvz атрибут CityCode?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2013, 15:43
Ответы с готовыми решениями:

SimpleXML не парсит XML
Доброго всем времени суток. Столкнулся с такой проблемой: SimpleXML возвращает пустой объект при обработке XML-файла. Пробовал передать в...

Как в SimpleXML получить значение параметра?
Имеется XML: ... <tag id="first">Данные 1</tag> <tag id="second">Данные 2</tag> ... Подскажите, пожалуйста, что нужно...

Перестали работать функции domDocument() и simplexml() в PHP 5
Всех приветствую. Мой вопрос скорее не по написанию кода, а по работе цепочки PHP/Denver/Browser. Подскажите пожалуйста такую вещь... ...

12
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
23.12.2013, 15:49
PHP
1
2
3
foreach ($back_xml_pvz->Pvz as $Pvz) {
    var_dump( (string) $Pvz['CityCode'] );
}
Добавлено через 2 минуты
$parent->child
Множество всех дочерних элементов <child>.

Если со множеством работают, как с отдельным элементом, то берется первый элемент:
PHP
1
2
3
$parent->child['some-attribute']
// то же самое
$parent->child[0]['some-attribute']
1
 Аватар для SpiritAbsolute
5 / 5 / 1
Регистрация: 07.08.2013
Сообщений: 75
24.12.2013, 12:28  [ТС]
Сработало, спасибо большое!

Добавлено через 26 минут
Возникла еще одна проблема. В некоторых местах файла есть вот такие строчки
XML
1
2
3
<Pvz Code="ULN2" Name="На Маркса" CityCode="422" City="Ульяновск" WorkTime="Пн.-Пт. 9-18, Сб. 10-14" Address="маркса карла, д.20, оф.1" Phone="+7(8422) 76-08-50">
<WeightLimit WeightMin="0.000" WeightMax="30.000"/>
</Pvz>
Как мне выбрать WeightMin и WeightMax?

Добавлено через 19 минут
Я выбрал все атрибуты всех узлов. Как мне теперь обработать эти данные и привести в нормальный вид?

Добавлено через 19 часов 4 минуты
http://gw.edostavka.ru:11443/pvzlist.php?cityid=44
Вот такой XML.
Как из него получить четко данные по каждому pvz.

Добавлено через 12 минут
Сколько я не пытаюсь, постоянно получается выводить атрибуты только первого тега <pvz>! ... помогите! как мне получать данные со всех pvz при этом не теряя связь между ними. Чтобы потом все эти данные поместить в один массив и возвращать функцией для работы с ними и добавлениях их в базу данных.

Добавлено через 11 минут
да еще и косяки с кодировкой.... хотя я указываю явно
и так
PHP
1
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type' => 'text/xml; encoding="UTF-8"'));
и так
PHP
1
2
$back_xml_pvz = new SimpleXMLElement(curl_exec($ch));
        $back_xml_pvz->addAttribute('encoding', 'UTF-8');
один фиг выводит кракозябры "«Белорусская»"

Добавлено через 13 минут
Нашел очень интересную штуку , можно преобразовать весь xml в массив.
PHP
1
2
3
$back_xml_pvz = new SimpleXMLElement(curl_exec($ch));
$json_string = json_encode($back_xml_pvz);
$result_array = json_decode($json_string, TRUE);
походу это ключ к спасению
0
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 36
24.12.2013, 14:35
Ребята, помогите получить доступ с php к атрибуту корневого элемента

XML
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding='UTF-8'?>
<questions name="Главная">  
  <question>
    <title>1</title>
    <body>Операционная система - это ...(укажите один правильный вариант ответа из четырех предложенных):</body>
      <answer1>драйвера всевозможных устройств</answer1>
      <answer2>программа, управляющая работой компьютера</answer2>
      <answer3>программа, обеспечивающая управление базами данных</answer3>
      <answer4>система программирования</answer4>
  </question>
 </questions>
Возможно ли получить доступ к атрибуту name в questions?
0
 Аватар для SpiritAbsolute
5 / 5 / 1
Регистрация: 07.08.2013
Сообщений: 75
24.12.2013, 14:46  [ТС]
PHP
1
$xml->questions['name'];
вот так попробуй.
вот тут подробнее в листинге 9 посмотри http://www.ibm.com/developerwo... x-xmlphp1/
0
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 36
24.12.2013, 14:59
Все равно беда(
PHP
1
2
3
4
5
6
7
8
    $xml=simplexml_load_file ($fle);
        if ($xml === false) {
            echo 'Error reading the document';
            exit;
        }
    
    $nnmm = $xml->questions['name'];
    echo $nnmm;
ничего не выдает((
0
 Аватар для SpiritAbsolute
5 / 5 / 1
Регистрация: 07.08.2013
Сообщений: 75
24.12.2013, 15:10  [ТС]
вот так попробуй
PHP
1
echo htmlentities((string) $xml->questions['name']);
0
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 36
24.12.2013, 15:18
Всеравно фигу показывает((( Все остальные элементы показывает четко, а до этого атрибута никак не могу достучаться(((
0
 Аватар для SpiritAbsolute
5 / 5 / 1
Регистрация: 07.08.2013
Сообщений: 75
24.12.2013, 15:22  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$xml = simplexml_load_file($url);
            
            $result_array=array();
            
            if (!isset($xml->ErrorCode)) {
                $i=0;
                foreach ($xml->Pvz as $result) {
                    $result_array[$i]['Code']=(string) $result['Code'];
                    $result_array[$i]['Name']=(string) $result['Name'];    
                    $result_array[$i]['CityCode']=(string) $result['CityCode'];  
                    $result_array[$i]['City']=(string) $result['City'];                 
                    $result_array[$i]['WorkTime']=(string) $result['WorkTime'];  
                    $result_array[$i]['Address']=(string) $result['Address'];                 
                    $result_array[$i]['Phone']=(string) $result['Phone'];                 
                    ++$i;
                }                
            }
вот так вот удалось решить мою задачу.

Добавлено через 1 минуту
насчет атрибута пытайся методом тыка из примера ссылки которую я дал.
0
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 36
24.12.2013, 16:38
Дык вот и пытаюсь, атрибут второго уровня читает легко, а вот главного ни в какую(((

или это ограничение simpleXML?(

Добавлено через 1 час 13 минут
Ураааа, решил)))
PHP
1
$xml["name"]
0
 Аватар для SpiritAbsolute
5 / 5 / 1
Регистрация: 07.08.2013
Сообщений: 75
24.12.2013, 16:41  [ТС]
точно!... метод тыка..
0
38 / 38 / 13
Регистрация: 22.07.2013
Сообщений: 197
24.12.2013, 18:01
А мне понятнее так:
PHP
1
$xml->attributes()['name']
0
ТатьянаPower
24.03.2014, 12:37
SpiritAbsolute, Здравствуйте! Рассматриваете предложения по трудоустройству? Подскажите, Ваши мобильные данные
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.03.2014, 12:37
Помогаю со студенческими работами здесь

Множество атрибутов XML в item
Всем привет. Имеется UI. На ней QListWidget. Имеется xml-файл, имеющий следующую структуру, атрибуты и данные: &lt;project&gt; ...

G - открытое множество в топологическом векторном пространстве Х. Тогда для любого множество А из Х множество A+G - открыто
G - открытое множество в топологическом векторном пространстве Х. Тогда для любого множество А из Х множество A+G - открыто.

Пусть заданы множество А и множество В целых чисел, вывести (напечатать) все элементы множества В которые не входят в множество А.
Решите Пожалуйста !!!

Пусть заданы множество А и множество В целых чисел, вывести напечатать все элементы множества В которые не входят в множество А.
Пусть заданы множество А и множество В целых чисел, вывести напечатать все элементы множества В которые не входят в множество А. С...

simpleXML
имею такой иксэмэль: &lt;xml_catalog date=&quot;2011-06-27 15:44&quot;&gt; &lt;shop&gt; &lt;categories&gt; &lt;category...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 09.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru