【问题标题】:xml data parsingxml数据解析
【发布时间】:2012-09-03 23:11:02
【问题描述】:

示例 XML:

<liste>
<okul>kod="1" durumid="6" genelid="11702" adi="istanbul lisesi"/>
<puan>genelpuan"2" sosyalpuan="0" matpuan="3"/>
<okul>kod="6" durumid="8" genelid="11345" adi="ankara lisesi"/>
<puan>genelpuan"4" sosyalpuan="5" matpuan="2"/>
</liste>

我想要结果:

genelid-adi-genelpuan-sosyalpuan
sample
11702 - istanbul lisesi - 2 - 0
11345 - ankara lisesi - 4 - 5

我的代码:

function getirbilgileri{ 
  $ch = curl("http://www.sample.com");   
  $xml = simplexml_load_string($ch); 
  $tarih = (string)$xml->attributes()->saat; 
  $i = 0; 
  $ids = cols(get('biten'),'genelid'); 
  foreach($xml->Okul as $okul) { 
    $x = getarray($okul->attributes())+compact('tarih'); 
    $puanlar[$i++] = (string)$x['genelid'];  
    if (in_array($x['genelid'],$ids)) continue; 
    insert('biten',parsequery($));
  }

  $i = 0;  
  foreach($xml->puan as $puan) { 
    $x = parsequery($puan->attributes()); 
    $i++; 
    if (in_array($x['genelid'],$ids)) continue; 
    update('biten',$x,"genelid='{$puan[$i-1]}'",1); 
  } 
}

问题出在一行:

if (in_array($x['genelid'],$ids)) continue;

因为genelid 不在数组中。有什么想法吗?

foreach($biten as $bitenler) 
{ 
  echo ' 
  <div class="okullar left">'.$bitenler->adi.'</div> // **this is  ok**
  <div class="puanlar fpuan">'.$bitenler->sosyalpuan.'</div>'; // **this is incorrect**
}  

【问题讨论】:

    标签: php xml arrays foreach


    【解决方案1】:

    你的 xml 应该是这样的

    <liste>
    <okul kod="1" durumid="6" genelid="11702" adi="istanbul lisesi"/>
    <puan genelpuan"2" sosyalpuan="0" matpuan="3"/>
    <okul kod="6" durumid="8" genelid="11345" adi="ankara lisesi"/>
    <puan genelpuan"4" sosyalpuan="5" matpuan="2"/>
    </liste>
    

    可能会。

    如果您想访问 okul 和 puan 节点的内容,将您拥有的内容处理为 xml 比没有意义更糟糕。

    【讨论】:

      猜你喜欢
      • 2015-07-12
      • 2020-06-03
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多