У меня проблемы с SimpleXML и addChild ().
Я пытаюсь сгенерировать файл заказа в XML из данных в базе данных MySQL.Я хочу, чтобы файл был сформирован так:
<Ordreimport>
<Kunde>
<..>
<Orderline>
<data>
</orderline>
<orderline>
<data>
</orderline>
</kunde>
</ordreimport>
Проблема в том, что следующий код
$OrderXML = new SimpleXMLElement('<?xml version="1.0" encoding="ISO-8859-1"?><OrdreImport></OrdreImport>');
While ($kunderad = mysql_fetch_array($HentKunde)) {
$OrderXML->addChild('Kunde');
$KundeInfo = $OrderXML->Kunde->addChild('KundeID',''); //BD60 - Kundekort - Kundenr
$OrdreHode = $OrderXML->Kunde->addChild('OrdreHode'); //OF14 - Ordrehode
$OrdreHode= $OrderXML->Kunde->OrdreHode->addChild('OrdreLinje');
while ($olrader = mysql_fetch_array($HentOrdrelinje)) {
$OrdreLinje = $OrderXML->Kunde->OrdreHode->OrdreLinje->addChild('StatusHB'); //se over.
}
Header('Content-type: text/xml');
echo $OrderXML->asXML();
дает следующий результат:
<Ordreimport>
<Kunde>
<..>
<Orderline>
<data>
<data>
</orderline>
</kunde>
</ordreimport>
Такженаличие $OrdreHode= $OrderXML->Kunde->OrdreHode->addChild('OrdreLinje');
внутри цикла, как я изначально, дает тот же результат, за исключением того, что оно также создает пустой тег <orderline>
для каждой дополнительной строки заказа в базе данных.Что почти верно, за исключением того, что все данные заканчиваются в первом теге <orderline>
.