Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML不在php中解析_Php_Laravel - Fatal编程技术网

XML不在php中解析

XML不在php中解析,php,laravel,Php,Laravel,在我的控制器中,我从数据库中读取数据。(其中,AlarmDeatils是一个存储为XML内容的列。例如:AlarmDeatils列包含 <SiteAlarmDetails> <AlertId>89637</AlertId> <SiteCode>20157498</SiteCode> <SiteName>newport</SiteName> <TankNumber>4&l

在我的控制器中,我从数据库中读取数据。(其中,
AlarmDeatils
是一个存储为XML内容的列。例如:AlarmDeatils列包含

<SiteAlarmDetails>
    <AlertId>89637</AlertId>
    <SiteCode>20157498</SiteCode>
    <SiteName>newport</SiteName>
    <TankNumber>4</TankNumber>
    <DispenserNumbedr>3</DispenserNumbedr>
    <HoseNumber>3</HoseNumber>
    <GradeId>11</GradeId>
    <GradeName>PULP98</GradeName>
    <AlarmUTCDateTime>2015-10-08T12:00:00</AlarmUTCDateTime>
    <AlarmClearedUTCDateTime>2015-10-08T22:00:00</AlarmClearedUTCDateTime>
    <UTCTimeZoneName>GMT Standard Time</UTCTimeZoneName>
    <AlarmVolume>0</AlarmVolume>
    <AlarmLevel>0</AlarmLevel>
    <TankCapacity>0</TankCapacity>
    <TankCapacityPercent>0</TankCapacityPercent>
    <TankOverfill>0</TankOverfill>
    <TankUllage>0</TankUllage>
    <ProductLoss>0</ProductLoss>
    <HoursElapsed>10</HoursElapsed>
    <WaterLevel>0</WaterLevel>
    <AvgSalesPerDay>0</AvgSalesPerDay>
    <DaysToStockOut>0</DaysToStockOut>
    <InvalidDataCount>0</InvalidDataCount>
    <ValidDataCount>0</ValidDataCount>
    <ZeroVolumeCount>0</ZeroVolumeCount>
    <ZeroProductLevelCount>0</ZeroProductLevelCount>
    <ZeroTotaliserAmountCount>0</ZeroTotaliserAmountCount>
</SiteAlarmDetails>
当我使用

 var_dump($tableAlarm);
我明白了

我正在尝试解析AlarmDeatils

$alertXml = simplexml_load_string( $tableAlarm->AlarmDetails);
 echo $alertXml;//Nothing printed
但我什么也没有得到:(我试图像处理xml一样处理它

foreach($alertXml->children() as $alerts)
{
   print_r( $alerts->AlertId);// **getting SimpleXMLElement Object ()**
   echo  $alerts->AlertId;//**Nothing printed**
}

希望这会有帮助。试试这个最简单的


simplexml\u load\u string
返回一个无法回送的
对象。请尝试
print\r
。在此
simplexml\u load\u string
中,您必须加载一个字符串而不是
对象
您可以共享
XML
和预期的输出吗?我在您的AlarmDetails中看不到任何元素。您确定它是XML吗?请使用e> $tableAlarm['AlarmDetails']
而不是
$tableAlarm->AlarmDetails
$alertXml = simplexml_load_string( $tableAlarm->AlarmDetails);
 echo $alertXml;//Nothing printed
foreach($alertXml->children() as $alerts)
{
   print_r( $alerts->AlertId);// **getting SimpleXMLElement Object ()**
   echo  $alerts->AlertId;//**Nothing printed**
}
<?php

$xmlString=<<<XML
<SiteAlarmDetails>
  <AlertId>89637</AlertId>
  <SiteCode>20157498</SiteCode>
  <SiteName>newport</SiteName>
  <TankNumber>4</TankNumber>
  <DispenserNumbedr>3</DispenserNumbedr>
  <HoseNumber>3</HoseNumber>
  <GradeId>11</GradeId>
  <GradeName>PULP98</GradeName>
  <AlarmUTCDateTime>2015-10-08T12:00:00</AlarmUTCDateTime>
  <AlarmClearedUTCDateTime>2015-10-08T22:00:00</AlarmClearedUTCDateTime>
  <UTCTimeZoneName>GMT Standard Time</UTCTimeZoneName>
  <AlarmVolume>0</AlarmVolume>
  <AlarmLevel>0</AlarmLevel>
  <TankCapacity>0</TankCapacity>
  <TankCapacityPercent>0</TankCapacityPercent>
  <TankOverfill>0</TankOverfill>
  <TankUllage>0</TankUllage>
  <ProductLoss>0</ProductLoss>
  <HoursElapsed>10</HoursElapsed>
  <WaterLevel>0</WaterLevel>
  <AvgSalesPerDay>0</AvgSalesPerDay>
  <DaysToStockOut>0</DaysToStockOut>
  <InvalidDataCount>0</InvalidDataCount>
  <ValidDataCount>0</ValidDataCount>
  <ZeroVolumeCount>0</ZeroVolumeCount>
  <ZeroProductLevelCount>0</ZeroProductLevelCount>
  <ZeroTotaliserAmountCount>0</ZeroTotaliserAmountCount>
</SiteAlarmDetails>
XML;

$xml=simplexml_load_string($xmlString);
echo (string)$xml->AlertId;//type-casted to string
echo PHP_EOL;
echo (string)$xml->SiteCode;
echo PHP_EOL;
echo (string)$xml->SiteName;