Rynor
stay hungry
парсинг простого xml (PHP4)
Уважаемые!
С сабжем работал только чтением мануалов, так что опыта маловато, а сдеалть потребовалось быстро и вчера
Вариантов вроде бы несколько, хочется оптимальный, для PHP5 понравился SimpleXML, а как распарсить в PHP4?
<?xml version="1.0" encoding="Windows-1251"?>
<sites>
<site title='RU'>
<info>Россия</info>
<admin>[email protected]</admin>
</site>
...
<site title='UA'>
<info>Украина</info>
<admin>[email protected]</admin>
</site>
</sites>
Пробежавшись по мануалу тупо сделал так (парсинг + генерация php массива для дальнейшей генерации html):
Но как-то мне это if... коряво кажется.
Есть ли более грамотное решение парсинга DOM XML либой.
Заранее благодарю за помощь!
PS Реги не предлагать, это оффтоп
Уважаемые!
С сабжем работал только чтением мануалов, так что опыта маловато, а сдеалть потребовалось быстро и вчера
Вариантов вроде бы несколько, хочется оптимальный, для PHP5 понравился SimpleXML, а как распарсить в PHP4?
<?xml version="1.0" encoding="Windows-1251"?>
<sites>
<site title='RU'>
<info>Россия</info>
<admin>[email protected]</admin>
</site>
...
<site title='UA'>
<info>Украина</info>
<admin>[email protected]</admin>
</site>
</sites>
Пробежавшись по мануалу тупо сделал так (парсинг + генерация php массива для дальнейшей генерации html):
PHP:
$domxml = domxml_open_file("sites.xml");
$sites = $domxml->get_elements_by_tagname('site');
foreach($sites as $site) {
$title = $site->get_attribute('title');
$children = $site->child_nodes();
foreach ($children as $node) {
$name = $node->node_name();
if ($name == 'info' || $name == 'admin') {
$aSites[$title][$name] = $node->get_content();
}
}
}
Есть ли более грамотное решение парсинга DOM XML либой.
Заранее благодарю за помощь!
PS Реги не предлагать, это оффтоп