【问题标题】:Parse XML file with PHP使用 PHP 解析 XML 文件
【发布时间】:2017-10-31 19:15:19
【问题描述】:

如何使用 PHP 解析以下格式的 XML 文件?

我想将此 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;
}

【问题讨论】:

  • 你能展示你试过的代码吗?

标签: php xml xml-parsing


【解决方案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

【讨论】:

  • 谢谢。这解决了问题。
猜你喜欢
  • 2012-02-05
  • 1970-01-01
  • 2012-10-24
  • 1970-01-01
  • 1970-01-01
  • 2020-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多