2017-02-28 41 views
-2
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<Servicos> 
<cServico> 
    <Codigo>40010</Codigo> 
</cServico> 
</Servicos> 

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<Servicos> 
<cServico> 
    <Codigo>40010</Codigo> 
</cServico> 
<cServico> 
    <Codigo>40011</Codigo> 
</cServico> 
</Servicos> 

的SimpleXMLElement的工作方式不同在兩個XML低於PHP SimpleXML的格式不正確

$object = new \SimpleXMLElement($xml); 

在第一種情況下,它會忽略XML節點「SERVICOS」在第二個XML直接帶來了「cServico」節點已經因爲有比它帶來正確的一個「cServico」節點多,是有辦法解決這個問題

回答

0

你忘了分享你的需要修復,但是,一般小費,你不需要使用頂級代碼節點使用SimpleXML時:

$codes = array(); 
foreach ($xml->cServico as $item) { 
    $codes[] = (string)$item->Codigo; 
} 

Online demo