как Распарсить документ в массив

Pegiy

Guest
как Распарсить документ в массив

Никогда с этим раннее не сталкивался, поэтому надеюсь простите за сумбурность.
Есть xml документ, который я хочу перегнать в массив для чего использую
xml_parse_into_struct($p,$buffer,$vals,$index);
сама структура понятна - $index ссылки на теги, $vals - сами теги.
Непонятно только как определить, что

[40] => Array
(
[tag] => PICTURE
[type] => complete
[level] => 5
[value] => /DSCU20.jpg
)
и
[46] => Array
(
[tag] => MODEL
[type] => complete
[level] => 5
[value] => DSC-U20
)

находились в одном теге offer
<offer id="177" type="vendor.model" >
<currencyId>USD</currencyId>
<categoryId>14</categoryId>
<picture>/dscu20.jpg</picture>
<vendor>SONY</vendor>
<model>DSC-U20</model>
</offer>

такое ощущение, что связь потерена
 

chameleon

Новичок
имхо посмотри Example 1022 в php_manual (у меня 12ый) там разбор сложного документа как раз и рассматривается, может не заметил? Сам тоже не сталкивался, а глубже копать лениво ;)..
 

Pegiy

Guest
мда, реальность превзошла все ожидания
я конечно на секунду подумал, что связь есть через порядок в массиве, но отогнал как безумную, оказывается зря
 

Pegiy

Guest
Что интересно: сначала на скорую руку собрал свой парсер - даже не парсер, а пару ereg'ов в цикле. А когда появилось время переписал на основе xml_parse_into_struct. В результате на небольших файлах время обработки выросло в два раза, а на мегабайтных раз в пять.
 
Сверху