Разобрать XML-файл с помощью PHP

Как мне разобрать файл XML, отформатированный ниже, используя PHP?

Я хочу сохранить данные из этого XML-файла в моей базе данных SQL, но у меня возникла проблема с анализом данных.

Любая помощь будет оценена.

<?xml version="1.0" encoding="UTF-8" ?> 
<Data>
<Record>
  <Type>BUILDING</Type> 
  <Building_ID>0000_00</Building_ID> 
  <Facility_Name>0000</Facility_Name> 
  <Facility_Description /> 
  <Status /> 
  <Asset_Owner /> 
  <Address /> 
  <City /> 
  <State /> 
  <Zip /> 
  <Country /> 
  <Mailstops /> 
  <Site_Reference>ML01</Site_Reference> 
</Record>
<Record>
  <Type>SITE</Type> 
  <Building_ID>0001</Building_ID> 
  <Facility_Name>Olympic Base</Facility_Name> 
  <Facility_Description>N/A</Facility_Description> 
  <Status>OWNED</Status> 
  <Asset_Owner>SoCal</Asset_Owner> 
  <Address>N/A</Address> 
  <City>LOS_ANGELES</City> 
  <State>CA</State> 
  <Zip /> 
  <Country>USA</Country> 
  <Mailstops /> 
  <Site_Reference /> 
</Record>
</Data>

Вот код, который я пробовал, который не работает:

$xmlurl = "http://myurl/data.xml";
$XMLDoc = simplexml_load_file("$xmlurl");

foreach($XMLDoc->Data->Record as $Record)
{
echo (string)$Record->Type;
    echo (string)$Record->Building_ID;
}

1 ответ

Решение

$XMLDoc имеет тип SimpleXMLElement.

Я думаю, что вы могли бы изменить эту строку:

foreach($XMLDoc->Data->Record as $Record)

к этой строке:

foreach($XMLDoc->Record as $Record)

Например:

foreach($XMLDoc->Record as $Record)
{
    echo (string)$Record->Type;
    echo (string)$Record->Building_ID;
    echo "<br>";
}

Приведет к:

BUILDING0000_00
SITE0001
Другие вопросы по тегам