Best Practice Advice XML

F

Fraser

Hi,

I'm needing to update an xml file by inserting a new node. First I need to
load the xml into a XmlDocument from file.

In the first run, the file won't exist and I will have to create a new
XmlDocument. What is the best way to do this ?

I'm thinking just catching an exception and building a new doc isn't the
best way of doing this.

If i check to see if the file exists, this is not neccessarily the best way
since the file might be corrupt. I can program this, but I'm asking for
advice on the best way of doing this. Can anyone advise me?

public void savePlayer()

{

XmlDocument xmldoc = new XmlDocument();

XmlNode members;

try

{

StreamReader xmlfile = new StreamReader("members.xml");

xmldoc.Load(xmlfile);

xmlfile.Close();

//get the members node

members = xmldoc.DocumentElement;

}

catch

{

//the file doesn't exist so we must create a new document

//let's add the XML declaration section

XmlNode xmlnode=xmldoc.CreateNode(XmlNodeType.XmlDeclaration,"","");

xmldoc.AppendChild(xmlnode);


//let's add the node element

members = xmldoc.CreateElement("members");

xmldoc.AppendChild(members);

}

XmlNode member = xmldoc.CreateElement("member");





//the display name

XmlElement displayname = xmldoc.CreateElement("displayname");

XmlText displayname_value = xmldoc.CreateTextNode("value");

displayname.AppendChild(displayname_value);

member.AppendChild(displayname); //add the username to the player


members.AppendChild(player);

xmldoc.Save("members.xml");

}
 
S

seani

Hi,

I'm needing to update an xml file by inserting a new node. First I need
to load the xml into a XmlDocument from file.

In the first run, the file won't exist and I will have to create a new
XmlDocument. What is the best way to do this ?

I'm thinking just catching an exception and building a new doc isn't the
best way of doing this.

And I'd suggest that your instinct is correct. The fact that a file
doesn't exist *is* an "exception"al condition; exceptions are suitable for
this task. The mindset that exception===error is just dogma.

However:

1) Ensure you only catch ans suitably code for your
"file-does-not-exist" exception, rather than every exception.

2) You'll need to cater for corrupt files whatever.

If i check to see if the file exists, this is not neccessarily the best
way since the file might be corrupt. I can program this, but I'm asking
for advice on the best way of doing this. Can anyone advise me?

[sample code snipped]
 
S

seani

And I'd suggest that your instinct is correct. The fact that a file
doesn't exist *is* an "exception"al condition; exceptions are suitable for
this task. The mindset that exception===error is just dogma.

Oops-a-daisy, I meant to say "your instinct is *incorrect*".

The rest of my post may seem more consistent now.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top