Я могу получить данные из xml отдельно от всех данных <Item>. Приведенный ниже код получает только данные для последнего. Я думал, что предсказание получит его для каждого из них, но это не похоже.
<magic5Out version="2.1.0"> <Report customerPK="Survey_2" locationPK="229" userId="2299" template="13600" formDate="2012-04-11T00:00:00" dateTimeStarted="2012-04-11T07:34:04" dateTimeMobileReleased="2012-04-11T07:37:03" currentStatus="5" reportGuid="b174d011-77bb-4882-b87e-a2c60bdf265d"> <Results> <Item itemPK="SurveyTab_9"> <q1 listEntry="1.8m" listEntryId="239107"/> <q1Comments text=""/> <q2 listEntry="Green" listEntryId="239113"/> <q2Comments text=""/> <item_comments text="test"/> </Item> <Item itemPK="SurveyTab_24"> <q1 listEntry="2.2m" listEntryId="239108"/> <q1Comments text=""/> <q2 listEntry="Silver" listEntryId="239112"/> <q2Comments text=""/> <item_comments text=""/> </Item> <Item itemPK="SurveyTab_10"> <q1 listEntry="3.0m" listEntryId="239110"/> <q1Comments text=""/> <q2 listEntry="White" listEntryId="239111"/> <q2Comments text=""/> <item_comments text="No feed"/> </Item> <Item itemPK="SurveyTab_23"> <q1 listEntry="2.2m" listEntryId="239108"/> <q1Comments text=""/> <q2 listEntry="Green" listEntryId="239113"/> <q2Comments text=""/> <item_comments text=""/> </Item> <surveyorComments0 text="testing"/> <surveyorName text="NICK"/> <surveyorSig opFile="D:\Sites\WebApp_eden\Output\2100\XMLSurvey\Attachments\1cf582f9-776c-472e-b8ce-877a51fae5e1.png"/> </Results> </Report> </magic5Out>
вот PHP, который я использую:
$xml = simplexml_load_file($xml_file); /* more code here that works OK */ foreach($xml->Report->Results->Item as $tab) { $tab_name = (string) $tab['itemPK']; $q1_result = $tab->q1['listEntry']; $q2_result = $tab->q2['listEntry']; etc. $q1_comment = escape_data($tab->q1Comments['text']); $q2_comment = escape_data($tab->q2Comments['text']); $item_comment = escape_data($tab->item_comments['text']); }