davemoody Posted August 12, 2011 Share Posted August 12, 2011 Hello, I've just created code in my shopping cart to save an order to an xml file. Now the file has all the elements and 'children' all in one long line, which gets longer with every new order. Is it possible to control how the elements etc are saved to the xml file so that they are nested? Here's my php code for adding elements to the file: $xdoc = new DomDocument; $xdoc->Load('orders/orders.xml'); $orders = $xdoc->getElementsByTagName('Orders')->item(0); $newOrderElement = $xdoc ->createElement('Order'); $newUsernameElement = $xdoc ->createElement('username'); $newEmailElement = $xdoc ->createElement('email'); $newFirstNameElement = $xdoc ->createElement('firstname'); $newLastNameElement = $xdoc ->createElement('lastname'); $newStreetElement = $xdoc ->createElement('street'); $newCityElement = $xdoc ->createElement('city'); $newStateElement = $xdoc ->createElement('state'); $newPostcodeElement = $xdoc ->createElement('postcode'); $newCountryElement = $xdoc ->createElement('country'); $newCCnumberElement = $xdoc ->createElement('ccnumber'); $newCCexpirymonthElement = $xdoc ->createElement('ccexpirymonth'); $newCCexpiryyearElement = $xdoc ->createElement('ccexpiryyear'); $newOrdertotalElement = $xdoc ->createElement('ordertotal'); $newProductorderElement = $xdoc ->createElement('productorder'); $usernameNode = $xdoc ->createTextNode ($username); $emailNode = $xdoc ->createTextNode ($email); $firstnameNode = $xdoc ->createTextNode ($firstname); $lastnameNode = $xdoc ->createTextNode ($lastname); $streetNode = $xdoc ->createTextNode ($street); $cityNode = $xdoc ->createTextNode ($city); $stateNode = $xdoc ->createTextNode ($state); $postcodeNode = $xdoc ->createTextNode ($postcode); $countryNode = $xdoc ->createTextNode ($country); $ccnumberNode = $xdoc ->createTextNode ($ccnumber); $ccexpirymonthNode = $xdoc ->createTextNode ($ccexpirymonth); $ccexpiryyearNode = $xdoc ->createTextNode ($ccexpiryyear); $ordertotalNode = $xdoc ->createTextNode ($ordertotal); $productorderNode = $xdoc ->createTextNode ($productorder); $newUsernameElement -> appendChild($usernameNode); $newEmailElement -> appendChild($emailNode); $newFirstNameElement -> appendChild($firstnameNode); $newLastNameElement -> appendChild($lastnameNode); $newStreetElement -> appendChild($streetNode); $newCityElement -> appendChild($cityNode); $newCountryElement -> appendChild($countryNode); $newCCnumberElement -> appendChild($ccnumberNode); $newCCexpirymonthElement -> appendChild($ccexpirymonthNode); $newCCexpiryyearElement -> appendChild($ccexpiryyearNode); $newOrdertotalElement -> appendChild($ordertotalNode); $newProductorderElement -> appendChild($productorderNode); $newOrderElement -> appendChild($newUsernameElement); $newOrderElement -> appendChild($newEmailElement); $newOrderElement -> appendChild($newFirstNameElement); $newOrderElement -> appendChild($newLastNameElement); $newOrderElement -> appendChild($newStreetElement); $newOrderElement -> appendChild($newCityElement); $newOrderElement -> appendChild($newStateElement); $newOrderElement -> appendChild($newCountryElement); $newOrderElement -> appendChild($newCCnumberElement); $newOrderElement -> appendChild($newCCexpirymonthElement); $newOrderElement -> appendChild($newCCexpiryyearElement); $newOrderElement -> appendChild($newOrdertotalElement); $newOrderElement -> appendChild($newProductorderElement); $orders -> appendChild($newOrderElement); $xdoc->save('orders/orders.xml'); Any advice will be greatly appreciated. Dave. Quote Link to comment https://forums.phpfreaks.com/topic/244657-formatting-xml-file-using-php/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.