我正在向XML文件添加一個新節點。由於該節點要稍微動,我創建了一個StringBuilder和我使用的XmlWriter創建節點:C#XmlWriter到StringBuilder HTML實體
StringBuilder newDateXML = new StringBuilder();
XmlWriter newDateXMLWriter = XmlWriter.Create(newDateXML, xmlWriterSettings);
newDateXMLWriter.WriteStartElement("Dates");
newDateXMLWriter.WriteElementString("type", "UNDEFINED");
newDateXMLWriter.WriteElementString("value", "YYYYMMDD");
newDateXMLWriter.WriteStartElement("additionalDateFields");
newDateXMLWriter.WriteStartElement("AdditionalDateFields");
newDateXMLWriter.WriteAttributeString("order", "1");
newDateXMLWriter.WriteElementString("type", "Original Type");
newDateXMLWriter.WriteElementString("value", "Date Added");
newDateXMLWriter.WriteEndElement();
newDateXMLWriter.WriteEndElement();
newDateXMLWriter.WriteEndElement();
newDateXMLWriter.Flush();
每當我想要添加的節點,我用這些來代替我想要的價值,並將其添加到文件:
x4.Add(newDateXML.ToString().Replace("YYYYMMDD", dictionary[x3.Element("value").Value]));
其中x4是XElement,x3是包含我的查找值的XElement。
問題是我相信把這些添加爲一個字符串是把我的'>'變成& lt;和'>'轉換成& gt;
爲了解決這個問題,我試圖取代它們像這樣:
foreach (XElement x in currentXML.Descendants("NameAddressRecord"))
{
newXML.WriteRaw(x.ToString().Replace("<", "<").Replace(">", ">"));
}
但是我在一些其他的數據實際上是用那些符號和轉換他們是打破了XML完整性遇到了一個問題。有什麼方法可以輕鬆地替換掉這個值而不會丟失XML格式,並且每次我想使用它時都不必重新創建這個節點?
[Linq2Xml](http://msdn.microsoft.com/en-us/library/bb387098.aspx) –