Не шарю в XML. Требуется помощь в преобразовании

zep

Новичок
Не шарю в XML. Требуется помощь в преобразовании

имеются вот такие данные:

<?xml version="1.0" encoding="iso-8859-1"?>
<qstat>
<server type="Q3S" address="172.16.1.1:27960" status="UP">
<hostname>172.16.1.1:27960</hostname>
<name>Q3 Server#1</name>
<gametype>excessiveplus</gametype>
<map>q3tourney4</map>
<numplayers>1</numplayers>
<maxplayers>16</maxplayers>
<ping>277</ping>
<retries>0</retries>
<rules>
<rule name="game">excessiveplus</rule>
<rule name="punkbuster">0</rule>
<rule name="pure">0</rule>
<rule name="gametype">0</rule>
<rule name="protocol">68</rule>
<rule name="version">Q3 1.32 linux-i386 Oct 7 2002</rule>
<rule name="dmflags">0</rule>
<rule name="fraglimit">20</rule>
<rule name="timelimit">15</rule>
<rule name="g_gametype">0</rule>
<rule name="sv_privateClients">0</rule>
<rule name="sv_hostname">Q3 Server#1</rule>
<rule name="sv_punkbuster">0</rule>
<rule name="sv_maxRate">10000</rule>
<rule name="sv_minPing">0</rule>
<rule name="sv_maxPing">0</rule>
<rule name="sv_floodProtect">1</rule>
<rule name="sv_pure">0</rule>
<rule name="sv_allowDownload">1</rule>
<rule name="g_needpass">0</rule>
<rule name="gamename">excessiveplus</rule>
<rule name="g_maxGameClients">0</rule>
<rule name="capturelimit">8</rule>
<rule name="xp_version">xp 1.01-beta (Apr 17 2004)</rule>
<rule name="xp_config">default.cfg</rule>
<rule name="xp_unlagged">1</rule>
<rule name="xp_physics">1</rule>
<rule name="Uptime">4 days, 23:53:57</rule>
<rule name="Players_Active">1 </rule>
<rule name="Score_Time">5:55</rule>
</rules>
<players>
<player>
<name>ZEP</name>
<score>0</score>
<ping>0</ping>
</player>
</players>
</server>
</qstat>

необходимо все параметры загнать в переменные для дальнейшей работы. Какими функциями все это сделать?
Если можно, показать в качестве полного программного кода

-~{}~ 23.03.05 00:20:

необходимо получить 3 массива:

1) с параметрами сервера
Type: Q3S
IP: 172.16.1.1:27960
Servername: Q3 Server#1
Map: saiko_tourney1
Maxplayers: 16
Cur players: 0
Ping: 0
Timeout: 0

2) массив с настройками
punkbuster=0
pure=1
gametype=0
protocol=68
xp_physics=1
и т. д.

3) и получить ассоциативный массив
$users['zep'] = array(0,0);

и т.д. .....
 

Frol

Новичок
нет.
по тому цена и такая низкая.

не нравится -- делай сам.
материала по этому полно.
 

mishabmw

Guest
Frol, а ты активно подтверждаешь свою подпись
 

zep

Новичок
Frol, скажи, у тебя уже 1505 сообщений, сколько из них было полезных???
Если тебе нечего сказать по этому вопросу, лучше молчи.
 

[DAN]

Старожил PHPClub
IMO, повелительное наклонение в предложении автора топика никак не соотносится с понятием "вопрос".
zep, уточните, в чем именно вы испытываете затруднения?
 

zep

Новичок
<?php
$filename = "./test.xml";
$dom = new DomDocument();
$dom->load($filename);

$titles = $dom->getElementsByTagName("rule");

foreach($titles as $node) {
print $node->ruleName." --- ".$node->textContent . "<br>\n";
}
?>

при помощи этого получил....
--- excessiveplus
--- 0
--- 0
--- 0
--- 68
--- Q3 1.32 linux-i386 Oct 7 2002
--- 0
--- 20
--- 15
--- 0
--- 0
--- Q3 Server#1
--- 0
--- 10000
--- 0
--- 0
--- 1
--- 0
--- 1
--- 0
--- excessiveplus
--- 0
--- 8
--- xp 1.01-beta (Apr 17 2004)
--- default.cfg
--- 1
--- 1
--- 4 days, 23:53:57
--- 1
--- 5:55

не выводится имя тага. Проблемма явно с $node->ruleName . Подскажите пожалуйста, как надо правильно написать?
 

zep

Новичок
Всем огромное спасибо за консультацию. Все получилось.
 
Сверху