2012-07-26 4 views
2

xml serialization을 사용하여 XML 조각을 만듭니다. 각 직렬화는 끝에 태그가 닫힌 태그를 가져 오는 결과로 끝에 줄 바꿈을 작성하지 않습니다. 아래의 예제 출력을 참조하십시오. close 태그가 같은 줄의 열린 태그에서 표시되는 곳
직렬화 객체를 새 행에 추가하려면 어떻게해야합니까?XML 직렬화에서 태그 뒤에 새 줄을 만드는 방법

maxmumleewayinticks=Instrument.MasterInstrument.TickSize*2; 

    string filename="c:\\temp\\Strategyxmlfile" + DateTime.Now.Ticks + ".xml"; 
    settings = new XmlWriterSettings(); 
    settings.Indent = true; 
    settings.IndentChars = " "; 
    settings.NewLineChars = "\r\n"; 
    settings.NewLineHandling = NewLineHandling.Replace; 
    settings.OmitXmlDeclaration = true; 
    settings.CloseOutput = false; 
    writer= new StreamWriter(filename); 

    ns.Add("", ""); 
    // write and close the bar 

    XmlSerializer serializer = new  XmlSerializer(typeof(DecisionBar)); 

    w =XmlWriter.Create(writer,settings); 

    serializer.Serialize(w, decision,ns); 

출력 :

<DecisionBar EntryOrExit="ENTRY"> 
    <mfe>0.0001</mfe> 
    <mae>-0.0002</mae> 
    <bartime>2012-07-25T21:43:00</bartime> 
    <frequency>1 MINUTES</frequency> 
    <HH7>true</HH7> 
    <crossover>true</crossover> 
    <currentprofitability>0.0001</currentprofitability> 
    <entryPointLong>1.032</entryPointLong> 
    <entryPointShort>1.0308</entryPointShort> 
    <exitStopFull>1.031</exitStopFull> 
    <exitStopPartial>0</exitStopPartial> 
</DecisionBar><DecisionBar> 
    <mfe>0.0001</mfe> 
    <mae>-0.0002</mae> 
    <bartime>2012-07-25T21:44:00</bartime> 
    <frequency>1 MINUTES</frequency> 
    <HH7>false</HH7> 
    <crossover>false</crossover> 
    <currentprofitability>0.0001</currentprofitability> 
    <entryPointLong>0</entryPointLong> 
    <entryPointShort>0</entryPointShort> 
    <exitStopFull>0</exitStopFull> 
    <exitStopPartial>0</exitStopPartial> 
</DecisionBar> 

답변

1

살펴 here을 가지고 :

try 
{ 
    MemberList g = new MemberList("group name"); 
    g.members[0] = new Member("mem 1"); 
    g.members[1] = new Member("mem 2"); 
    g.members[2] = new Member("mem 3"); 

    StringWriter sw = new StringWriter(); 
    XmlTextWriter tw = new XmlTextWriter(sw); 
    tw.Formatting = Formatting.Indented; 
    tw.Indentation = 4; 

    XmlSerializer ser = new XmlSerializer(typeof(MemberList)); 
    ser.Serialize(tw, g); 

    tw.Close(); 
    sw.Close(); 

    Console.WriteLine(sw.ToString()); 
} 
catch(Exception exc) 
{ 
    Console.WriteLine(exc.Message); 
} 

이 몇 가지 추가 작업, 단지에 대한 몇 가지 옵션을 지정하지 필요하지만 이것은 당신에게 원하는 결과를 줄 것이다 XmlSerializer.

편집 : 다양한 변형이 있습니다. 이걸 찾았습니다 Googling; 당신도 똑같이 할 수 있습니다.

관련 문제