Коллеги, хмлка имеет вид
<section name="Рюкзаки">
<section name="Рюкзаки Deuter" />
<section name="Рюкзаки экспедиционные">
<sectionPropertiesList>
<property name="Плотность внешнего материала">
<item value="300D"/>
<item value="210T"/>
<item value="600D"/>
<item value="420D"/>
<item value="290T"/>
</property>
<property name="Плотность материала дна">
<item value="600D"/>
<item value="210T"/>
<item value="420D"/>
</property>
<property name="Фурнитура"/>
<property name="Количество ручек для переноски"/>
<property name="Боковые кормашки"/>
<property name="Грудная стяжка"/>
<property name="Боковые стяжки"/>
<property name="Противооткидочные стропы"/>
<property name="Карманы на поясе"/>
<property name="Узел крепления горного оборудования"/>
</sectionPropertiesList>
</section>
<section name="Рюкзаки городские">
<sectionPropertiesList>
<property name="Для города"/>
<property name="Плотность внешнего материала">
<item value="300D"/>
<item value="210T"/>
<item value="600D"/>
<item value="420D"/>
<item value="290T"/>
</property>
...
</sectionPropertiesList>
</section>
</section>
Как ее распарсить через xmlreader при двух одинаковых названиях узлов?
$sect = array();
$this->cat = $this->reader->getAttribute('name');
$name = strtolower($this->reader->localName);
while ($this->reader->moveToNextAttribute()) {
// здесь мы получаем атрибуты если они есть
$sect[$name]['__attribs'][$this->reader->localName] = $this->reader->value;
}
while ($this->reader->read()) {
if ($this->reader->nodeType == XMLREADER::ELEMENT && $this->reader->localName == 'section') {
$name1 = strtolower($this->reader->localName);
while ($this->reader->moveToNextAttribute()) {
// здесь мы получаем атрибуты если они есть
$sect[$name][$name1]['__attribs'][$this->reader->localName] = 2;//$this->reader->value;
}
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей