2011-01-06 3 views
0

일부 CData 노드가있는 XML 파일이 있습니다. 하지만 현장에서 수정하려고하면 :XElement 값을 수정하면 CData 형식이 손실됩니다.

var doc = XDocument.Load(filename); 
foreach(var el in doc.Descendants("foo")) 
{ 
    el.Value = el.Value.Replace("bar", "baz"); 
} 
doc.Save(filename); 

... 모두 CData 유형이 손실됩니다. 그 피하는 가장 좋은 방법은 무엇입니까? 감사!

답변

2

CData 및 일반 텍스트 노드는 XML 관점에서 볼 때 동등합니다. 따라서 여러분이 보는 행동은 예상됩니다. Value는 결코 XML 관점에서 CDATA 노드를 필요로하지 않으므로 CDATA 노드를 생성하지 않습니다.

CData가 있어야하는 경우 명시 적으로 CData를 만들어야합니다. exaple은 http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.createcdatasection.aspx을 참조하십시오.