m angel - 2010-06-29

Hi, I was using the ezxml library to read and write xml files in freertos os.
I read correctly, but when I write new tags I don't get the format I would like.

The original XML file is, for example:

<Users>
  <user>
      <name>admin</name>
      <level>admin</level>
      <pass>123456</pass>
  </user>
  <user>
      <name>installer1</name>
      <level>installer</level>
      <pass>123456</pass>
  </user>
  <user>
      <name>maintenance1</name>
      <level>maintenance</level>
      <pass>123456</pass>
  </user></Users>

My program to write a new tag is as follows:

users = ezxml_parse_file(CFG_USERS_FILENAME);
user = ezxml_add_child(users, "user", 0);
node = ezxml_add_child(user, "name", 0);
ezxml_set_txt(node, "test");
node = ezxml_add_child(user, "level", 0);
ezxml_set_txt(node, "admin");
node = ezxml_add_child(user, "pass", 0);
ezxml_set_txt(node, "123489");
s = ezxml_toxml(users);
ezxml_free(users);
if ((fd = open("A:/CFG/test.xml", O_WRONLY )) >= 0)
        {
    write(fd, s, strlen(s));
    close(fd);
        }
free (s);

When I run it and save the xml with  I get:

<Users>
  <user> <name>test</name> <level>admin</level> <pass>123489</pass> </user>
  <user>
      <name>installer1</name>
      <level>installer</level>
      <pass>123456</pass>
  </user>
  <user>
      <name>maintenance1</name>
      <level>maintenance</level>
      <pass>123456</pass>
  </user>
</Users>

Without indentation or newlines.

How could I get the indentation and newlines?
Am I doing something wrong?
I would like to get this:

<Users>
  <user>
      <name>test</name>
      <level>admin</level>
      <pass>123489</pass>
  </user>
  <user>
      <name>installer1</name>
      <level>installer</level>
      <pass>123456</pass>
  </user>
  <user>
      <name>maintenance1</name>
      <level>maintenance</level>
      <pass>123456</pass>
  </user>
</Users>

Could anybody help me?

Thanks in advance,
zmlopez