public static List <WallProjectionAndPositionSample> readWallProjectionAndPositionSamplesFromXML() { List <WallProjectionAndPositionSample> sampleList = new List <WallProjectionAndPositionSample>(); XmlDocument docConfig = new XmlDocument(); docConfig.Load(AppDomain.CurrentDomain.BaseDirectory + "\\WallProjectionAndPositionSamples.xml"); XmlNodeList devices = docConfig.SelectSingleNode("/devices").ChildNodes; foreach (XmlNode device in devices) { String knndeviceIdentifier = ""; foreach (XmlNode prop in device) { if (prop.Name.Equals("deviceIdentifier")) { knndeviceIdentifier = prop.InnerText; } else if (prop.Name.Equals("samples")) { foreach (XmlNode sample in prop.ChildNodes) { WallProjectionAndPositionSample s = new WallProjectionAndPositionSample(new Point3D( double.Parse(sample.FirstChild.ChildNodes[0].InnerText), double.Parse(sample.FirstChild.ChildNodes[1].InnerText), double.Parse(sample.FirstChild.ChildNodes[2].InnerText)), new Point3D( double.Parse(sample.ChildNodes[1].ChildNodes[0].InnerText), double.Parse(sample.ChildNodes[1].ChildNodes[1].InnerText), double.Parse(sample.ChildNodes[1].ChildNodes[2].InnerText) ), knndeviceIdentifier); sampleList.Add(s); } } } } return(sampleList); }
public static void writeWallProjectionAndPositionSampleToXML(WallProjectionAndPositionSample sample) { XmlDocument docConfig = new XmlDocument(); docConfig.Load(AppDomain.CurrentDomain.BaseDirectory + "\\WallProjectionAndPositionSamples.xml"); XmlNode node = docConfig.SelectSingleNode("/devices"); foreach (XmlNode deviceNode in node.ChildNodes) { if (deviceNode.FirstChild.InnerText == sample.sampledeviceIdentifier && deviceNode.FirstChild.Name == "deviceIdentifier") { if (deviceNode.ChildNodes[1].Name == "samples") { XmlElement xmlSample = docConfig.CreateElement("sample"); XmlElement samplePos = docConfig.CreateElement("wallPosition"); XmlElement posX = docConfig.CreateElement("X"); posX.InnerText = sample.wallPositionX.ToString(); samplePos.AppendChild(posX); XmlElement posY = docConfig.CreateElement("Y"); posY.InnerText = sample.wallPositionY.ToString(); samplePos.AppendChild(posY); XmlElement posZ = docConfig.CreateElement("Z"); posZ.InnerText = sample.wallPositionZ.ToString(); samplePos.AppendChild(posZ); xmlSample.AppendChild(samplePos); XmlElement writepersonPosition = docConfig.CreateElement("personPosition"); XmlElement writeppX = docConfig.CreateElement("X"); writeppX.InnerText = sample.personPositionX.ToString(); writepersonPosition.AppendChild(writeppX); XmlElement writeppY = docConfig.CreateElement("Y"); writeppY.InnerText = sample.personPositionY.ToString(); writepersonPosition.AppendChild(writeppY); XmlElement writeppZ = docConfig.CreateElement("Z"); writeppZ.InnerText = sample.personPositionZ.ToString(); writepersonPosition.AppendChild(writeppZ); xmlSample.AppendChild(writepersonPosition); //xmlPosition.SetAttribute("X:", sample.x.ToString()); //xmlPosition.SetAttribute("Y:", sample.y.ToString()); //xmlPosition.SetAttribute("Z:", sample.z.ToString()); deviceNode.ChildNodes[1].AppendChild(xmlSample); docConfig.Save(AppDomain.CurrentDomain.BaseDirectory + "\\WallProjectionAndPositionSamples.xml"); return; } } } XmlElement newDev = docConfig.CreateElement("device"); XmlElement deviceIdentifier = docConfig.CreateElement("deviceIdentifier"); deviceIdentifier.InnerText = sample.sampledeviceIdentifier; XmlElement samplePositions = docConfig.CreateElement("samples"); XmlElement newSample = docConfig.CreateElement("sample"); XmlElement samplePosition = docConfig.CreateElement("wallPosition"); XmlElement X = docConfig.CreateElement("X"); X.InnerText = sample.wallPositionX.ToString(); samplePosition.AppendChild(X); XmlElement Y = docConfig.CreateElement("Y"); Y.InnerText = sample.wallPositionY.ToString(); samplePosition.AppendChild(Y); XmlElement Z = docConfig.CreateElement("Z"); Z.InnerText = sample.wallPositionZ.ToString(); samplePosition.AppendChild(Z); XmlElement personPosition = docConfig.CreateElement("personPosition"); XmlElement ppX = docConfig.CreateElement("X"); ppX.InnerText = sample.personPositionX.ToString(); personPosition.AppendChild(ppX); XmlElement ppY = docConfig.CreateElement("Y"); ppY.InnerText = sample.personPositionY.ToString(); personPosition.AppendChild(ppY); XmlElement ppZ = docConfig.CreateElement("Z"); ppZ.InnerText = sample.personPositionZ.ToString(); personPosition.AppendChild(ppZ); newSample.AppendChild(samplePosition); newSample.AppendChild(personPosition); samplePositions.AppendChild(newSample); newDev.AppendChild(deviceIdentifier); newDev.AppendChild(samplePositions); node.AppendChild(newDev); docConfig.Save(AppDomain.CurrentDomain.BaseDirectory + "\\WallProjectionAndPositionSamples.xml"); return; }