> 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

Reply via email to