下面是本人写的读写xml方法,供参考:
public void createNewFile(string fileName)
{
var appStorage = IsolatedStorageFile.GetUserStoreForApplication();
try
{
if (!appStorage.FileExists(fileName))
{
appStorage.CreateDirectory("XXXX");
appStorage.CreateFile(fileName);
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(string.Format(@"{0}:{1}", this.ToString(), ex.Message));
}
}
public async Task WriteToFile(StorageFile file)
{
try
{
string fileName = @"XXXX\" + file.Name;
createNewFile(fileName);
using (IsolatedStorageFile appStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isoStream = appStorage.OpenFile(fileName, FileMode.Create))
{
XmlWriterSettings xmlsetting = new XmlWriterSettings();
xmlsetting.Indent = true;
using (XmlWriter xmlwriter = XmlWriter.Create(isoStream, xmlsetting))
{
xmlwriter.WriteStartElement("Face");
xmlwriter.WriteStartElement("FaceRect");
xmlwriter.WriteAttributeString("Height", Convert.ToString(this._faceRect.Height));
xmlwriter.WriteAttributeString("Width", Convert.ToString(this._faceRect.Width));
xmlwriter.WriteAttributeString("Y", Convert.ToString(this._faceRect.Y));
xmlwriter.WriteAttributeString("X", Convert.ToString(this._faceRect.X));
xmlwriter.WriteEndElement();
xmlwriter.WriteStartElement("FaceFeature");
foreach (Point point in FaceFeature)
{
xmlwriter.WriteStartElement("Point");
xmlwriter.WriteAttributeString("Y", Convert.ToString(point.Y));
xmlwriter.WriteAttributeString("X", Convert.ToString(point.X));
xmlwriter.WriteEndElement();
}
xmlwriter.WriteEndElement();
xmlwriter.WriteStartElement("Sample");
xmlwriter.WriteAttributeString("IsSample", Convert.ToString(this._bSample));
xmlwriter.WriteEndElement();
xmlwriter.WriteStartElement("Pin");
xmlwriter.WriteAttributeString("IsPined", Convert.ToString(this._isPined));
xmlwriter.WriteEndElement();
xmlwriter.WriteEndElement();
}
}
}
using (IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isostream = iso.OpenFile(fileName, FileMode.Open))
{
using (StreamReader reader = new StreamReader(isostream))
{
string str = reader.ReadToEnd();
}
}
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(string.Format(@"{0}:{1}", this.ToString(), ex.Message));
}
}
public async Task ReadFromFile(StorageFile file)
{
try
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Async = true;
FileStream fs = File.OpenRead(file.Path);
using (XmlReader reader = XmlReader.Create(fs, settings))
{
while (await reader.ReadAsync())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "FaceRect")
{
this._faceRect.Height = Convert.ToSingle(reader.GetAttribute("Height"));
this._faceRect.Width = Convert.ToSingle(reader.GetAttribute("Width"));
this._faceRect.Y = Convert.ToSingle(reader.GetAttribute("Y"));
this._faceRect.X = Convert.ToSingle(reader.GetAttribute("X"));
}
if (reader.NodeType == XmlNodeType.Element && reader.Name == "Point")
{
if (FaceFeature == null)
{
_faceFeature = new List<Point>();
}
FaceFeature.Add(new Point() { Y = Convert.ToSingle(reader.GetAttribute("Y")), X = Convert.ToSingle(reader.GetAttribute("X")) });
}
if (reader.NodeType == XmlNodeType.Element && reader.Name == "Sample")
{
this._bSample = Convert.ToBoolean(reader.GetAttribute("IsSample"));
}
if (reader.NodeType == XmlNodeType.Element && reader.Name == "Pin")
{
this._isPined = Convert.ToBoolean(reader.GetAttribute("IsPined"));
}
}
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(string.Format(@"{0}:{1}", this.ToString(), ex.Message));
}
}
}
public void createNewFile(string fileName)
{
var appStorage = IsolatedStorageFile.GetUserStoreForApplication();
try
{
if (!appStorage.FileExists(fileName))
{
appStorage.CreateDirectory("XXXX");
appStorage.CreateFile(fileName);
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(string.Format(@"{0}:{1}", this.ToString(), ex.Message));
}
}
public async Task WriteToFile(StorageFile file)
{
try
{
string fileName = @"XXXX\" + file.Name;
createNewFile(fileName);
using (IsolatedStorageFile appStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isoStream = appStorage.OpenFile(fileName, FileMode.Create))
{
XmlWriterSettings xmlsetting = new XmlWriterSettings();
xmlsetting.Indent = true;
using (XmlWriter xmlwriter = XmlWriter.Create(isoStream, xmlsetting))
{
xmlwriter.WriteStartElement("Face");
xmlwriter.WriteStartElement("FaceRect");
xmlwriter.WriteAttributeString("Height", Convert.ToString(this._faceRect.Height));
xmlwriter.WriteAttributeString("Width", Convert.ToString(this._faceRect.Width));
xmlwriter.WriteAttributeString("Y", Convert.ToString(this._faceRect.Y));
xmlwriter.WriteAttributeString("X", Convert.ToString(this._faceRect.X));
xmlwriter.WriteEndElement();
xmlwriter.WriteStartElement("FaceFeature");
foreach (Point point in FaceFeature)
{
xmlwriter.WriteStartElement("Point");
xmlwriter.WriteAttributeString("Y", Convert.ToString(point.Y));
xmlwriter.WriteAttributeString("X", Convert.ToString(point.X));
xmlwriter.WriteEndElement();
}
xmlwriter.WriteEndElement();
xmlwriter.WriteStartElement("Sample");
xmlwriter.WriteAttributeString("IsSample", Convert.ToString(this._bSample));
xmlwriter.WriteEndElement();
xmlwriter.WriteStartElement("Pin");
xmlwriter.WriteAttributeString("IsPined", Convert.ToString(this._isPined));
xmlwriter.WriteEndElement();
xmlwriter.WriteEndElement();
}
}
}
using (IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isostream = iso.OpenFile(fileName, FileMode.Open))
{
using (StreamReader reader = new StreamReader(isostream))
{
string str = reader.ReadToEnd();
}
}
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(string.Format(@"{0}:{1}", this.ToString(), ex.Message));
}
}
public async Task ReadFromFile(StorageFile file)
{
try
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Async = true;
FileStream fs = File.OpenRead(file.Path);
using (XmlReader reader = XmlReader.Create(fs, settings))
{
while (await reader.ReadAsync())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "FaceRect")
{
this._faceRect.Height = Convert.ToSingle(reader.GetAttribute("Height"));
this._faceRect.Width = Convert.ToSingle(reader.GetAttribute("Width"));
this._faceRect.Y = Convert.ToSingle(reader.GetAttribute("Y"));
this._faceRect.X = Convert.ToSingle(reader.GetAttribute("X"));
}
if (reader.NodeType == XmlNodeType.Element && reader.Name == "Point")
{
if (FaceFeature == null)
{
_faceFeature = new List<Point>();
}
FaceFeature.Add(new Point() { Y = Convert.ToSingle(reader.GetAttribute("Y")), X = Convert.ToSingle(reader.GetAttribute("X")) });
}
if (reader.NodeType == XmlNodeType.Element && reader.Name == "Sample")
{
this._bSample = Convert.ToBoolean(reader.GetAttribute("IsSample"));
}
if (reader.NodeType == XmlNodeType.Element && reader.Name == "Pin")
{
this._isPined = Convert.ToBoolean(reader.GetAttribute("IsPined"));
}
}
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(string.Format(@"{0}:{1}", this.ToString(), ex.Message));
}
}
}