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>
내가 통해 반복하고있어 새 자식 XML 레코드를 생성하는 AddChild를 사용하지만 내 최종 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>
있습니다.