Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > Получение всех свойств узла


Автор: weralwolf 27.4.2008, 17:30
Пример обрабатываемого файла:
Код

<?xml version="1.0" encoding="UTF8" ?>
<site xmlns:site="weralwolf:site@gmail.com">
 <site:match pattern="^/(search)/?$">
   <site:data src="area.data/index.php" area="{1}" id="12" />
   <site:template src="area.template/index.tpl.php" />
   <site:serialize />
 </site:match>
</site>

Примечание: в {1} будет помещенно search
Вопрос: Как перебрать все атрибуты узла, к примеру <site:data src="area.data/index.php" area="{1}" id="12" />??? Понятно что получить один из аттрибутов : getAttribute()
Уточнения: php5, стандартный набор Denwer



Автор: weralwolf 29.4.2008, 23:26
В процесе ковыряния в нете был найден такой вариант:
Если используем библиотеку SimpleXmlElement (читаем http://ua.php.net/manual/ru/function.simplexml-element-attributes.php )

Код

$node =  simplexml_load_string($xml);
foreach ($node->children('site') as $childNode) {
    foreach($childNode->attributes() as $attributeName => $attributeValue) {
          // что то там делаешь с атрибутами.
    }
}



Если используем либу DOM, тогда:

Код

$data = array();
foreach ($node->attributes as $attribute) {
     $data[$attribute->name] = $attribute->value;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)