> Hi > I'm sorry, but I don't understand well what you are trying to tell me..... > > Let's imagine I want to modify an existent XML file called customers.xml > > I should do this steps > > $doc = new DOMDocument(); > $doc->load('customers.xml'); > $root = $doc->getElementsByTagName("customers"); // to take the root > > .... // create one customer > > $doc->save('customer.xml'); // to save the changes > > that is exactly what I did in the else part (in the if, in the case the file > customers.xml didn't exist, I create the file with only the root node). > Isn't is right?
Apologies. I missed the '!' in the if and got the logic reversed. You do not say what does or does not happen on the second attempt? Am I correct in assuming there is no change? > For what concerns the two type of DOMDocument istantiation.... I forgot to > chance them both :) > > Thks > Maurizio Bellemo > Sytel Reply Deutschland > __________________ > > m.bell...@reply.it > Prinzenalle 7 > 40549 Düsseldorf > GERMANY > ________________________________________ > From: Niel Archer [...@chance.now] > Sent: Tuesday, May 12, 2009 7:16 PM > To: php-windows@lists.php.net > Subject: Re: [PHP-WIN] Problem with DOM > > > Hi all, > > > > I'm trying to create some XML from PHP code to save data about customers, > > but I found many problem and it doesn't work. > > > > The class Customer is quite simple I put it right below > > > > <?php > > > > class customer { > > var $name; > > var $phone; > > > > function customer($name, $phone) { > > $this->name = $name; > > $this->phone = $phone; > > } > > > > function getName() { > > return $name; > > } > > > > function setName($name) { > > $this->name = $name; > > } > > > > function getPhone() { > > return $phone; > > } > > > > function setPhone($phone) { > > $this->phone = $phone; > > } > > > > function addXMLCustomer($dom, $root) { > > $customer = $dom->createElement('customer'); > > > > $name_at = $dom->createAttribute('name'); > > $customer->appendChild($name_at); > > $name_at_val = $dom->createTextNode($this->name); > > $name_at->appendChild($name_at_val); > > > > $phone_at = $dom->createAttribute('phone'); > > $customer->appendChild($phone_at); > > $phone_at_val = $dom->createTextNode($this->phone); > > $phone_at->appendChild($phone_at_val); > > > > $root->appendChild($customer); > > > > } > > } > > > > ?> > > > > the main page is simply a little form asking to introduce a new > > customer.... (the problem is not when you try to create the XML file for > > the first time, but something on getElementsByTagName, that is when you try > > to reopen the file... for example for a second customer.... > > > > <html> > > <head> > > <title>MCare administration</title> > > <script type="text/javascript" > > src="script/scriptaculous-js-1.8.2/prototype.js"></script> > > <script type="text/javascript" > > src="script/scriptaculous-js-1.8.2/scriptaculous.js"></script> > > </head> > > <?php > > // require class file > > require("customer.php"); > > > > $xmlfile = "C:/Users/Maurizio/Desktop/customers.xml"; > > > > if(!file_exists($xmlfile)) { > > $doc = new DOMDocument('1.0', 'iso-8859-1'); > > $root = $doc->createElement('customers'); > > $doc->appendChild($root); > > > > if (isset($_GET['add_customer']) && > > isset($_GET['new_customer_name']) > > && isset($_GET['new_customer_phone'])) { > > $c = new customer($_GET['new_customer_name'], > > $_GET['new_customer_phone']); > > $c->addXMLCustomer($doc, $root); > > } > > $doc->save($xmlfile); > > } > > else { > > $doc = new DOMDocument(); > > $doc->load($xmlfile); > > $root = $doc->getElementsByTagName("customers"); > > if (isset($_GET['add_customer']) && > > isset($_GET['new_customer_name']) > > && isset($_GET['new_customer_phone'])) { > > $c = new customer($_GET['new_customer_name'], > > $_GET['new_customer_phone']); > > $c->addXMLCustomer($doc, $root); > > } > > $doc->save($xmlfile); > > } > > ?> > > <body> > > <div> > > <fieldset><legend>Add new customer</legend> > > <form method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>"> > > <label for="new_customer_name">Name:</label> > > <input id="new_customer_name" name="new_customer_name" type="text" /> > > <label for="new_customer_phone">Phone:</label> > > <input id="new_customer_phone" name="new_customer_phone" type="text" /> > > <button id="add_customer" name="add_customer" type="submit">Add</button> > > </form> > > </fieldset> > > </div> > > </body> > > </html> > > > > Any suggestions?? > > It looks to me that you are creating a new DOM object for the file > existing condition, but not loading the actual file into the object with > $doc->load() or similar. Consequently you are creating a new file with > single entry each time. > Also, I wonder why your new DOMDocument()s have different parameters? > Wouldn't it be wise to make them the same to avoid possible problems? > > > > Thks > > Maurizio > > > > -- > > The information transmitted is intended for the person or entity to which > > it is addressed and may contain confidential and/or privileged material. > > Any review, retransmission, dissemination or other use of, or taking of any > > action in reliance upon, this information by persons or entities other than > > the intended recipient is prohibited. If you received this in error, please > > contact the sender and delete the material from any computer. > > > > -- > > PHP Windows Mailing List (http://www.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > -- > Niel Archer > niel.archer (at) blueyonder.co.uk > > > > -- > PHP Windows Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > > -- > The information transmitted is intended for the person or entity to which it > is addressed and may contain confidential and/or privileged material. Any > review, retransmission, dissemination or other use of, or taking of any > action in reliance upon, this information by persons or entities other than > the intended recipient is prohibited. If you received this in error, please > contact the sender and delete the material from any computer. > > -- > PHP Windows Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- Niel Archer -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php