Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > получение данных из xml (Dom)


Автор: Aarons 6.11.2012, 01:26
Приветствую Вас, уважаемые пользователи форума Vingrad. Есть проблема и целый день не могу ее решить, сил больше нет и прошу помочь с ее решением. В общем код не большой, просто ни разу с этим не работал, а сделать нужно до утра все. 

Есть XML файл, примерно такого содержания : 

Код


<skill id="1" name="Test">
<set name="power" val="80" />
<set name="operateType" val="OP_ACTIVE" />
</skill>



Мне нужно получить из него id (id="1") и operateType этого id. После чего записать в базу  operateType под соответсвующий id. 

Выполняю данных код :

Код


$dom = new DOMDocument;
$dom->load('./skills/0000-0099.xml');
$xpath = new DOMXPath($dom);
$query = '/list/skill[@id>0] | /list/skill/set[@name="operateType"]';
$result = $xpath->query($query);


foreach ($result as $element) 
{ 
$idSkill = str_replace(' ','',$element->getAttribute('id'));
$valSkill = str_replace(' ','',$element->getAttribute('val'));

mysql_query("UPDATE special_skill_trees SET type='".$valSkill."' WHERE skill_id='".$idSkill."'") or die(mysql_error());
}



Но получение данных id и operateType идут как то в разнобой и поэтому данные в базе не обновляются. Уже что только не перепробовал, очень прошу помочь. Голова "по швам трещит".

С уважением, Аарон.

Автор: Aliance 6.11.2012, 10:47
Зачем вообще XPath?
Код

foreach ($dom->getElementsByTagName('skill') as $skills) {
    $id = $skills->getAttribute('id');
}

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