Parsing XML

I’m trying to take the data from this XML document and put it on a table on my web site. Here is the code I am using.

[php]<?php

$roster = new SimpleXMLElement(‘roster.xml’, null, true);

echo "

";
foreach($roster as $Members) // loop through roster
{
echo "






";
}
echo ‘

Name Rank Level Calling
{$Members->Name} {$Members->Rank} {$Members->Level} {$Members->Calling}
’;
?>[/php]

Now here is the XML document:

<?xml version="1.0" encoding="UTF-8"?> <Guild> <Id>221380069277501764</Id> <Name>Ethereal Order</Name> <Level>1</Level> <Experience>0</Experience> <MOTD>Welcome to Ethereal Order. Website coming soon: http://www.etherealorder.com</MOTD> <Ranks> <Rank> <Id>0</Id> <Name>Leader</Name> <CanOfficerChat>True</CanOfficerChat> <CanGuildChatListen>True</CanGuildChatListen> <CanGuildChatSpeak>True</CanGuildChatSpeak> <CanSetMOTD>True</CanSetMOTD> <CanEditOfficerNotes>True</CanEditOfficerNotes> <CanPromote>True</CanPromote> <CanDemote>True</CanDemote> <CanKick>True</CanKick> <CanEditRanks>True</CanEditRanks> <CanInvite>True</CanInvite> <CanQuestAccept>True</CanQuestAccept> <CanQuestAbandon>True</CanQuestAbandon> <CanQuestComplete>True</CanQuestComplete> <CanPerkTrain>True</CanPerkTrain> <CanRallyPointSet>True</CanRallyPointSet> </Rank> <Rank> <Id>1</Id> <Name>Elder</Name> <CanOfficerChat>True</CanOfficerChat> <CanGuildChatListen>True</CanGuildChatListen> <CanGuildChatSpeak>True</CanGuildChatSpeak> <CanSetMOTD>True</CanSetMOTD> <CanEditOfficerNotes>True</CanEditOfficerNotes> <CanPromote>True</CanPromote> <CanDemote>True</CanDemote> <CanKick>True</CanKick> <CanEditRanks>False</CanEditRanks> <CanInvite>True</CanInvite> <CanQuestAccept>True</CanQuestAccept> <CanQuestAbandon>True</CanQuestAbandon> <CanQuestComplete>True</CanQuestComplete> <CanPerkTrain>False</CanPerkTrain> <CanRallyPointSet>True</CanRallyPointSet> </Rank> <Rank> <Id>2</Id> <Name>Legate</Name> <CanOfficerChat>True</CanOfficerChat> <CanGuildChatListen>True</CanGuildChatListen> <CanGuildChatSpeak>True</CanGuildChatSpeak> <CanSetMOTD>True</CanSetMOTD> <CanEditOfficerNotes>True</CanEditOfficerNotes> <CanPromote>True</CanPromote> <CanDemote>True</CanDemote> <CanKick>True</CanKick> <CanEditRanks>False</CanEditRanks> <CanInvite>True</CanInvite> <CanQuestAccept>True</CanQuestAccept> <CanQuestAbandon>True</CanQuestAbandon> <CanQuestComplete>True</CanQuestComplete> <CanPerkTrain>True</CanPerkTrain> <CanRallyPointSet>True</CanRallyPointSet> </Rank> <Rank> <Id>3</Id> <Name>Senior Officer</Name> <CanOfficerChat>True</CanOfficerChat> <CanGuildChatListen>True</CanGuildChatListen> <CanGuildChatSpeak>True</CanGuildChatSpeak> <CanSetMOTD>True</CanSetMOTD> <CanEditOfficerNotes>True</CanEditOfficerNotes> <CanPromote>True</CanPromote> <CanDemote>True</CanDemote> <CanKick>True</CanKick> <CanEditRanks>False</CanEditRanks> <CanInvite>True</CanInvite> <CanQuestAccept>True</CanQuestAccept> <CanQuestAbandon>True</CanQuestAbandon> <CanQuestComplete>True</CanQuestComplete> <CanPerkTrain>True</CanPerkTrain> <CanRallyPointSet>True</CanRallyPointSet> </Rank> <Rank> <Id>4</Id> <Name>Officer</Name> <CanOfficerChat>True</CanOfficerChat> <CanGuildChatListen>True</CanGuildChatListen> <CanGuildChatSpeak>True</CanGuildChatSpeak> <CanSetMOTD>False</CanSetMOTD> <CanEditOfficerNotes>True</CanEditOfficerNotes> <CanPromote>False</CanPromote> <CanDemote>False</CanDemote> <CanKick>False</CanKick> <CanEditRanks>False</CanEditRanks> <CanInvite>False</CanInvite> <CanQuestAccept>False</CanQuestAccept> <CanQuestAbandon>False</CanQuestAbandon> <CanQuestComplete>False</CanQuestComplete> <CanPerkTrain>False</CanPerkTrain> <CanRallyPointSet>False</CanRallyPointSet> </Rank> <Rank> <Id>5</Id> <Name>Conscript</Name> <CanOfficerChat>False</CanOfficerChat> <CanGuildChatListen>True</CanGuildChatListen> <CanGuildChatSpeak>True</CanGuildChatSpeak> <CanSetMOTD>False</CanSetMOTD> <CanEditOfficerNotes>False</CanEditOfficerNotes> <CanPromote>False</CanPromote> <CanDemote>False</CanDemote> <CanKick>False</CanKick> <CanEditRanks>False</CanEditRanks> <CanInvite>False</CanInvite> <CanQuestAccept>False</CanQuestAccept> <CanQuestAbandon>False</CanQuestAbandon> <CanQuestComplete>False</CanQuestComplete> <CanPerkTrain>False</CanPerkTrain> <CanRallyPointSet>False</CanRallyPointSet> </Rank> <Rank> <Id>6</Id> <Name>Seer</Name> <CanOfficerChat>False</CanOfficerChat> <CanGuildChatListen>True</CanGuildChatListen> <CanGuildChatSpeak>True</CanGuildChatSpeak> <CanSetMOTD>False</CanSetMOTD> <CanEditOfficerNotes>False</CanEditOfficerNotes> <CanPromote>False</CanPromote> <CanDemote>False</CanDemote> <CanKick>False</CanKick> <CanEditRanks>False</CanEditRanks> <CanInvite>False</CanInvite> <CanQuestAccept>False</CanQuestAccept> <CanQuestAbandon>False</CanQuestAbandon> <CanQuestComplete>False</CanQuestComplete> <CanPerkTrain>False</CanPerkTrain> <CanRallyPointSet>False</CanRallyPointSet> </Rank> <Rank> <Id>7</Id> <Name>Charlaton</Name> <CanOfficerChat>False</CanOfficerChat> <CanGuildChatListen>True</CanGuildChatListen> <CanGuildChatSpeak>True</CanGuildChatSpeak> <CanSetMOTD>False</CanSetMOTD> <CanEditOfficerNotes>False</CanEditOfficerNotes> <CanPromote>False</CanPromote> <CanDemote>False</CanDemote> <CanKick>False</CanKick> <CanEditRanks>False</CanEditRanks> <CanInvite>False</CanInvite> <CanQuestAccept>False</CanQuestAccept> <CanQuestAbandon>False</CanQuestAbandon> <CanQuestComplete>False</CanQuestComplete> <CanPerkTrain>False</CanPerkTrain> <CanRallyPointSet>False</CanRallyPointSet> </Rank> <Rank> <Id>8</Id> <Name>Parson</Name> <CanOfficerChat>False</CanOfficerChat> <CanGuildChatListen>True</CanGuildChatListen> <CanGuildChatSpeak>True</CanGuildChatSpeak> <CanSetMOTD>False</CanSetMOTD> <CanEditOfficerNotes>False</CanEditOfficerNotes> <CanPromote>False</CanPromote> <CanDemote>False</CanDemote> <CanKick>False</CanKick> <CanEditRanks>False</CanEditRanks> <CanInvite>False</CanInvite> <CanQuestAccept>False</CanQuestAccept> <CanQuestAbandon>False</CanQuestAbandon> <CanQuestComplete>False</CanQuestComplete> <CanPerkTrain>False</CanPerkTrain> <CanRallyPointSet>False</CanRallyPointSet> </Rank> <Rank> <Id>9</Id> <Name>Dominion</Name> <CanOfficerChat>False</CanOfficerChat> <CanGuildChatListen>True</CanGuildChatListen> <CanGuildChatSpeak>True</CanGuildChatSpeak> <CanSetMOTD>False</CanSetMOTD> <CanEditOfficerNotes>False</CanEditOfficerNotes> <CanPromote>False</CanPromote> <CanDemote>False</CanDemote> <CanKick>False</CanKick> <CanEditRanks>False</CanEditRanks> <CanInvite>False</CanInvite> <CanQuestAccept>False</CanQuestAccept> <CanQuestAbandon>False</CanQuestAbandon> <CanQuestComplete>False</CanQuestComplete> <CanPerkTrain>False</CanPerkTrain> <CanRallyPointSet>False</CanRallyPointSet> </Rank> </Ranks> <Members> <Member> <Name>Adareo</Name> <Rank>6</Rank> <Level>21</Level> <Calling>Mage</Calling> <Joined>2011-04-06T00:14:37.321</Joined> <IsOnline>False</IsOnline> <AFK>False</AFK> <LastLogOutTime>2011-04-06T01:08:11.126</LastLogOutTime> <PersonalNotes></PersonalNotes> <OfficerNotes></OfficerNotes> <GuildXPContribution>0</GuildXPContribution> </Member> <Member> <Name>Lando</Name> <Rank>1</Rank> <Level>24</Level> <Calling>Warrior</Calling> <Joined>2011-04-05T01:49:41.916</Joined> <IsOnline>True</IsOnline> <AFK>False</AFK> <LastLogOutTime>2011-04-05T23:54:43.745</LastLogOutTime> <PersonalNotes></PersonalNotes> <OfficerNotes></OfficerNotes> <GuildXPContribution>0</GuildXPContribution> </Member> <Member> <Name>Ashurr</Name> <Rank>0</Rank> <Level>24</Level> <Calling>Cleric</Calling> <Joined>2011-04-05T01:49:12.76</Joined> <IsOnline>True</IsOnline> <AFK>False</AFK> <LastLogOutTime>2011-04-05T21:29:52.58</LastLogOutTime> <PersonalNotes></PersonalNotes> <OfficerNotes></OfficerNotes> <GuildXPContribution>0</GuildXPContribution> </Member> <Member> <Name>Varric</Name> <Rank>6</Rank> <Level>21</Level> <Calling>Cleric</Calling> <Joined>2011-04-05T01:52:10.117</Joined> <IsOnline>False</IsOnline> <AFK>False</AFK> <LastLogOutTime>2011-04-05T16:51:40.160</LastLogOutTime> <PersonalNotes></PersonalNotes> <OfficerNotes></OfficerNotes> <GuildXPContribution>0</GuildXPContribution> </Member> <Member> <Name>Emryls</Name> <Rank>6</Rank> <Level>21</Level> <Calling>Warrior</Calling> <Joined>2011-04-05T01:50:16.188</Joined> <IsOnline>False</IsOnline> <AFK>False</AFK> <LastLogOutTime>2011-04-05T03:56:07.346</LastLogOutTime> <PersonalNotes></PersonalNotes> <OfficerNotes></OfficerNotes> <GuildXPContribution>0</GuildXPContribution> </Member> </Members> </Guild>

I’m fairly new to PHP, but I have a good handle on it, but I haven’t dealt with XML at all or making tables with php from XML data.

What am I doing wrong here?

I think here is how your code supposed to look:
[php]if($roster->Members->Member) foreach($roster->Members->Member as $Member) // loop through roster
{
echo "


{$Member->Name}
{$Member->Rank}
{$Member->Level}
{$Member->Calling}

";
}
[/php]

Sponsor our Newsletter | Privacy Policy | Terms of Service