该应用程序应该不时添加节点到Goals.xml
文件。所以它的dynamic
。这增加了节点的代码:删除XML中的多个XML声明
XmlWriterSettings settings=new XmlWriterSettings();
settings.OmitXmlDeclaration= true;
settings.Indent = true;
settings.IndentChars = ("\t");
using (IsolatedStorageFile myIsolatedStorage =
IsolatedStorageFile.GetUserStoreForApplication())
using (IsolatedStorageFileStream stream =
myIsolatedStorage.OpenFile("Goals.xml", FileMode.Append))
{
XmlSerializer serializer = new XmlSerializer(typeof(List<Goals>));
using (XmlWriter xmlWriter = XmlWriter.Create(stream, settings))
{
serializer.Serialize(
xmlWriter,
GenerateGoalsData(name, description, progress));
}
}
和
private List<Goals> GenerateGoalsData(
string name,
string description,
string progress)
{
List<Goals> data = new List<Goals>();
data.Add(new Goals() {
Name=name,
Description=description,
Progress=progress});
return data;
}
,也是我有Goals
类。但它会产生不好的XML
:
<ArrayOfGoals xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Goals>
<Name>Jack</Name>
<Description>lalala</Description>
<Progress>97</Progress>
</Goals>
</ArrayOfGoals>
<ArrayOfGoals xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Goals>
<Name>Taaaaaa</Name>
<Description>nanana</Description>
<Progress>50</Progress>
</Goals>
</ArrayOfGoals>
如何XML
删除重复:
</ArrayOfGoals>
<ArrayOfGoals xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
所以XML
看起来像这样:
<ArrayOfGoals xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Goals>
<Name>Jack</Name>
<Description>lalala</Description>
<Progress>97</Progress>
</Goals>
<Goals>
<Name>Taaaaaa</Name>
<Description>nanana</Description>
<Progress>50</Progress>
</Goals>
</ArrayOfGoals>
或者如何在节点追加不说字符串被自动添加?
+1。 Read-add-save是安全的方法。如果OP想要继续附加数据,则添加另一个答案。 –
因此以及如何将新节点添加到反序列化的xml中。 Im在XmlSerializer serializer = new XmlSerializer(typeof(List)); (列表)serializer.Deserialize(stream);如何使用这个变量数据? –
@AntonMashikhin'如何将新节点附加到反序列化xml'。不需要进行xml处理。反序列化后,你有'数据'。将新目标添加到'data'并序列化它 –