[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос по simpleXML
dahl
Доброе время суток

Прошу помощи кто знает подскажите пожалуйста, уже незнаю что и делать копаюсь 3 дня, а толку нет sad.gif

Проблема в том что simplexml не видет атрибут в элементе только отдает значение элемента
Привожу косок XML'а

<item id="212" parent="181" show="1" sort="43">
<org
id="56">Государственное учреждение "Территориальный центр социального обслуживания населения Московского района"</org>
</item>


Это что отдает print_r с объекта

[42] => SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => 212
[parent] => 181
[show] => 1
[sort] => 43
)

[org] => Государственное учреждение "Территориальный центр социального обслуживания населения Московского района"
)



Получается что атрибут элемента org его нет в объекте но в самом xml org id есть

Вот так получаю объект

$xmlString = $obj->GetCurl($url); // забираю по курлу xml
$xml = simplexml_load_string($xmlString['0'],'SimpleXMLElement', LIBXML_NOCDATA); //Есть значения СDATA
print_r($xml);




Спустя 16 часов, 3 минуты, 48 секунд (2.07.2010 - 08:13) linker написал(а):
Попробуйте <org oid="56">, а вообще DOM вам в помощь, работает чуть медленнее, но зато гораздо удобнее и проблем меньше.

Спустя 13 минут, 33 секунды (2.07.2010 - 08:27) Kuzya написал(а):
var_dump($xml->org);
Цитата
работает чуть медленнее, но зато гораздо удобнее и проблем меньше.

Странно. Может вы что-то путаете? DOM никогда не доставлял проблем меньше SimpleXML. Всё как раз наоборот.

Спустя 7 минут, 9 секунд (2.07.2010 - 08:34) linker написал(а):
Kuzya, можно узнать про них, а то с самого начала пользуюсь им и не замечал?

Спустя 15 минут, 39 секунд (2.07.2010 - 08:50) Kuzya написал(а):
Я изначально пробовал работать с XML через DOM. Сидел мучался, но работал т.к. было надо smile.gif А с появлением SimpleXML проблемы как рукой сняло. Просто берёшь и работаешь с XML-структурой как с массивом/объектом. Всё просто и понятно. В сторону использования DOM больше никогда не посмотрю smile.gif

Спустя 25 минут, 15 секунд (2.07.2010 - 09:15) linker написал(а):
Kuzya, ну а конкретней можно, какие они мучения? Я так предполагаю, что в данном случае атрибуты id элементов item и org перекрываются в ассоциативном массиве @attributes, но это только догадка, т.к. c SimpleXML не работал. В DOM, было бы все просто:
если $Node - это элемент item, то в самом простом случае:
echo $Node->firstChild->attributes->item(0)->nodeValue;

Спустя 45 минут, 34 секунды (2.07.2010 - 10:01) Kuzya написал(а):
Да просто человек общается с корневым узлом, а не с тем который нужен. Вот как можно получить его id (пишу на память, могу где-то ошибиться)
$xml->org['id']

А если он в <org> вложит ещё один тег со свойствами, то их не увидит при дампе
$xml->org, потому что, опять же, будет общаться не с тем элементом, чьи свойства хочет видеть.

Спустя 5 минут, 21 секунда (2.07.2010 - 10:06) linker написал(а):
Kuzya, вон оно как.

Спустя 6 дней, 19 часов, 29 минут, 59 секунд (9.07.2010 - 05:36) sl4mmer написал(а):
simpleXML хорошая штука.. но системные ресурсы ппц как хавает... имхо лучше реги использовать где можно.... ну и не забывать про волшебный __destruct


Но симплХМЛ в плане ресурсоемкости еще ребенок -на днях тут пользовал бесплатный класс phpEXEL (нужен был скрипт который бы проводил сверку прайс листов и их автоматическое обновление), так пришлось ему поднять лимит памяти до 256 МБ!!! причем утечек нигде небыло.. все норм.. просто потребление памяти при обработке входных данных до 204 мб доходило на тестах..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.