Преобразование элементов файла XML в массив PHP

Я пытаюсь преобразовать XML-файл списка участников группы Steam в массив с помощью Php. XML-файл: http://steamcommunity.com/groups/starhawk/memberslistxml/?xml=1.xml

Элементы — это Steam ID участника, например 76561198000264284.

Как я могу это сделать?

Изменить: до сих пор я использовал что-то вроде этого:

$array = json_decode(json_encode((array)simplexml_load_string($xml)),1); 

Он выводит первые несколько элементов, а не только элементы из


person liamp47    schedule 04.05.2013    source источник
comment
SimpleXML будет хорошим началом.   -  person Jon    schedule 04.05.2013
comment
$array = json_decode(json_encode((массив)simplexml_load_string($xml)),1); Я пробовал что-то подобное, только он выводит первые несколько элементов, а не конкретно от ‹members›   -  person liamp47    schedule 04.05.2013
comment
вы делаете слишком много :) просто используйте элемент simplexml и получите доступ к интересующему вас значению. нет особого смысла изменять его с помощью преобразований массива, без него он работает намного лучше.   -  person hakre    schedule 04.05.2013


Ответы (2)


Это должно вернуть полностью доступный массив:

$get = file_get_contents('http://steamcommunity.com/groups/starhawk/memberslistxml/?xml=1.xml');
$arr = simplexml_load_string($get);
print_r($arr);

Теперь вы можете получить доступ к следующим элементам:

echo $arr->groupID64;
echo $arr->members->steamID64; 

Изменить: чтобы проанализировать идентификатор потока, вы можете выполнить цикл for

$ids = $arr->members->steamID64;
foreach($ids as $id) {
    echo $id;
}
person Kartik    schedule 04.05.2013
comment
Спасибо за это, но я хочу, чтобы SteamID64 выводился только из элемента ‹members›. - person liamp47; 04.05.2013

вы можете использовать приведенный ниже функциональный код, чтобы получить правильный ответ

<?php
$getfile = file_get_contents('http://steamcommunity.com/groups/starhawk/memberslistxml/?xml=1.xml');

$arr = simplexml_load_string($getfile);

foreach($arr->members->steamID64 as $a => $b) {
    echo "<br>".$a,'="',$b,"\"\n";
}
?>

ВЫВОД

steamID64="76561198009904532" 
steamID64="76561198004808757" 
steamID64="76561198000264284" 
steamID64="76561198016710420" 
steamID64="76561198005429187" 
steamID64="76561198030184436" 
steamID64="76561197980763372" 
steamID64="76561197972363016" 
steamID64="76561198045469666" 
steamID64="76561198010892015" 
steamID64="76561198028438913" 
steamID64="76561197967117636" 
steamID64="76561197980283206" 
steamID64="76561197992198727" 
steamID64="76561198018960482" 
steamID64="76561198071675315" 
steamID64="76561198010447988" 
steamID64="76561198025628761"

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

person liyakat    schedule 04.05.2013