0
我試圖根據一些數據來生成一個XML文件,這些數據是在循環中處理的。我最後的XML輸出需要看起來像這樣:PHP SimpleXMLElement addChild僅顯示循環中的最後一個值
<Line>
<Code>123</Code>
<Description>Acme Constructions</Description>
<TransactionAmount>44.00</TransactionAmount>
<BaseCurrency>AUD</BaseCurrency>
</Line>
<Line>
<Code>456</Code>
<Description>Acme Flowers</Description>
<TransactionAmount>23.00</TransactionAmount>
<BaseCurrency>AUD</BaseCurrency>
</Line>
<Line>
<Code>789</Code>
<Description>General Hospital</Description>
<TransactionAmount>19.00</TransactionAmount>
<BaseCurrency>AUD</BaseCurrency>
</Line>
我通過循環和使用addChild創建一個新的XML子記錄,但我最後的XML文件只展示,不以前從循環的最後一個值那些。這裏是我的PHP代碼:
$xml = new SimpleXMLElement('<xml></xml>');
foreach ($invoiceLineItems->LineItem as $invoiceLineItem) {
$description = $invoiceLineItem->Description;
$amount = $invoiceLineItem->UnitAmount;
$Code = $invoiceLineItem->AccountCode;
$xml = $xml->addChild('Line');
$xml->addChild('Code', $Code);
$xml->addChild('Description', $description);
$xml->addChild('Amount', $amount);
}
// Save XML
$xml->asXML();
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml->asXML());
$dom->save($fileName);
這將生成的.xml文件,但它只有一個
<Line>
...
</Line>
在循環中的最後一條記錄,而不是一個在循環中的所有記錄。