Php 获取子对象的值
在Stackoverflow用户的帮助下,我解决了很多问题。 我有一个XML witch,它是根节点的子节点之一:Php 获取子对象的值,php,xml,Php,Xml,在Stackoverflow用户的帮助下,我解决了很多问题。 我有一个XML witch,它是根节点的子节点之一: <ChannelStatistics ChannelId="DMAT" CounterDim=""> <TotalCount>104</TotalCount> <DefectCounter ClassId="F1">62</DefectCounter>
<ChannelStatistics ChannelId="DMAT" CounterDim="">
<TotalCount>104</TotalCount>
<DefectCounter ClassId="F1">62</DefectCounter>
<DefectCounter ClassId="F2">34</DefectCounter>
<DefectCounter ClassId="F3">8</DefectCounter>
</ChannelStatistics>
<ChannelStatistics ChannelI="FERRO" CounterDim="">
<TotalCount>17</TotalCount>
<DefectCounter ClassId="F1">2</DefectCounter>
<DefectCounter ClassId="F2">5</DefectCounter>
<DefectCounter ClassId="F3">10</DefectCounter>
</ChannelStatistics>
104
62
34
8.
17
2.
5.
10
使用这个php代码
$obj = simplexml_load_file('data\data.xml');
foreach($obj->PieceReport->Piece->DeviceValuation->ChannelStatistics as $channel){
echo $channel->attributes()->ChannelId;
echo " - ";
foreach($channel->DefectCounter as $defect){
echo $defect->attributes()->ClassId, "= ";
echo $channel['ClassId']," " ;
}
echo "<br>" ;
}
$obj=simplexml\u load\u文件('data\data.xml');
foreach($obj->PieceReport->Piece->DeviceValuation->ChannelStatistics as$channel){
echo$channel->attributes()->ChannelId;
回声“-”;
foreach($channel->DefectCounter作为$defect){
echo$defect->attributes()->ClassId,“=”;
echo$channel['ClassId'],“”;
}
回声“
”;
}
我可以
DMAT-F1=F2=F3=
铁-F1=F2=F3=
但是我被困在如何得到F1,F3和F3的值上
因此,我需要的是:
DMAT-F1=62 F2=34 F3=8
铁-F1=2 F2=5 F3=10
这样我就可以将它们保存在Mysql数据库中
我是新的XML和PHP,所以我想这应该是一个简单的
感谢您的帮助 您需要访问
$defect
的值,而不是代码第3行中$channel
的属性ClassID
:
foreach($channel->DefectCounter as $defect){
echo $defect->attributes()->ClassId, "= ";
echo $channel['ClassId']," " ; // <----- change needed here
}
我推荐@Mestre1966 Welcome的可能副本
echo $defect;