Php xml的foreach循环
我在PHP代码中加载了以下xml:Php xml的foreach循环,php,laravel,Php,Laravel,我在PHP代码中加载了以下xml: <SiteAlarmDetails> <AlertId>89637</AlertId> <SiteCode>20157498</SiteCode> <SiteName>newport</SiteName> </SiteAlarmDetails> $alertXml = simplexml_load_string( $tableAlarm
<SiteAlarmDetails>
<AlertId>89637</AlertId>
<SiteCode>20157498</SiteCode>
<SiteName>newport</SiteName>
</SiteAlarmDetails>
$alertXml = simplexml_load_string( $tableAlarm->AlarmDetails);
echo (string) $alertXml->AlertId; //prints **89637**
在foreach循环中遍历AlertId的方法是否正确?尝试简单的
foreach
会很有帮助。仅用于访问单个值(例如AlertId
),您可以使用$alertXml->AlertId代码>
是否要循环这些AlertId、SiteCode
?foreach($alertXml->children()作为$alerts){print_r($alerts);}
执行此操作时会发生什么?@SahilGulati是。我可能在一个父元素中得到多个childern元素$alertXml->children()
将返回AlertId
、SiteCode
和SiteName
节点的集合。它们都包含纯文本内容。你到底想做什么?@Phil我想在foreach循环中读取我的AlertId。我得到了非常大的XML。我可能会用不同的根元素覆盖多个ALertId。在这里,我提供了一个简单的xml,并询问如何读取ForEach中的警报ID谢谢,如果我想读取特定的密钥(即:ALertId),我应该如何读取它?@Ratha您可以使用echo$alertXml->ALertId代码>如果我的标记被另一个根标记覆盖(例如:),我应该如何遍历AlertId?@Ratha,您可以使用XPath
foreach($alertXml->children() as $alerts)
{
$alertId = (string)$alerts->AlertId;
echo $alertId;//I do not see anything
}
<?php
ini_set('display_errors', 1);
$xmlString=<<<XML
<SiteAlarmDetails>
<AlertId>89637</AlertId>
<SiteCode>20157498</SiteCode>
<SiteName>newport</SiteName>
</SiteAlarmDetails>
XML;
$alertXml = simplexml_load_string( $xmlString);
foreach($alertXml as $key => $child)
{
echo $key ."=".(string)$alertXml->{$key};
echo PHP_EOL;
}
AlertId=89637
SiteCode=20157498
SiteName=newport