Jag har information som jag tänkte spara som XML, och jag kodar i C#. Informationen skickas från sensorer, och XML-filen uppdateras då ny data finns tillgänglig.
Nu till ett litet krux som jag har stött på. Om vi tar ett exempel på hur en XML-fil som jag har ser ut:
<?xml version="1.0" encoding="UTF-8" ?>
<eeml xmlns="http://www.eeml.org/xsd/005">
<environment updated="2008-10-07T09:58:39.6754623Z" xmlns="">
<data id="1">
<tag>light</tag>
<value>551</value>
</data>
</environment>
</eeml>
I taggen "environment" får jag ett xmlns-attribut, utan att jag har bett om det. Förmodligen så har jag missat att förstå något när jag har skrivit koden för detta, och tänkte höra om någon kan skicka mig i rätt riktning. Jag vet inte om min kod för att generera XMLen är vettig. Så här ser den ut i nuläget:
private void SaveData(SensorData s)
{
// Create a new XML-file for every day
string filename = "sensor-" + DateTime.Now.Date.ToString().Substring(0, 10) + ".xml";
XmlDocument xmlDoc = new XmlDocument();
try
{
xmlDoc.Load(filename);
}
catch (System.IO.FileNotFoundException)
{
// If file is not found, create a new XML file
XmlTextWriter xmlWriter = new XmlTextWriter(filename, System.Text.Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");
xmlWriter.WriteStartElement("eeml", "http://www.eeml.org/xsd/005");
xmlWriter.Close();
xmlDoc.Load(filename);
}
XmlNode root = xmlDoc.DocumentElement;
XmlElement environment = xmlDoc.CreateElement("environment");
XmlElement data = xmlDoc.CreateElement("data");
XmlElement tag = xmlDoc.CreateElement("tag");
XmlElement valueTag = xmlDoc.CreateElement("value");
root.PrependChild(environment);
environment.SetAttribute("updated", XmlConvert.ToString(s.TimeStamp, XmlDateTimeSerializationMode.Utc));
environment.AppendChild(data);
data.SetAttribute("id", s.Channel.ToString());
data.AppendChild(tag);
data.AppendChild(valueTag);
tag.InnerText = s.NameTag;
valueTag.InnerText = s.Value.ToString();
xmlDoc.Save(filename);
}
Såå... Om jag vill kunna uppdatera min XML då ny data kommer från sensorer, samt slippa xmlns-attributet på environment-taggen, hur bör jag göra?