응용 프로그램은 노드를 수시로 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 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>
또는를 :
</ArrayOfGoals>
<ArrayOfGoals xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
이 때문에 XML
그렇게 보이는 문자열이 자동으로 추가됩니까?
+1. 읽기 - 추가 저장은 안전한 접근 방식입니다. OP가 데이터를 계속 추가하려는 경우 다른 답변이 추가되었습니다. –
그래서 deserialized xml에 새 노드를 추가하는 방법. 메신저 XmlSerializer serializer 후 누적 = 새로운 XmlSerializer (typeof (List)); 목록 data = (목록 ) serializer.Deserialize (스트림); 이 변수 데이터로 작업하는 방법? –
@AntonMashikhin'새로운 노드를 deserialize 된 XML에 추가하는 법'. XML 처리가 필요 없습니다. deserialization 후, 당신은 당신의'data'를 가진다. 'data'에 새로운 목표를 추가하고 그것을 직렬화하십시오 –