В настоящее время я добавляю новый узел в файл XML. Поскольку узел должен быть немного динамичным, я создал StringBuilder и использую XmlWriter для создания узла:
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, содержащий мое значение поиска.
Проблема в том, что я считаю, что добавление их в виде строки превращает мой '>' в < и '>' в > ;
Чтобы исправить это, я попытался заменить их следующим образом:
foreach (XElement x in currentXML.Descendants("NameAddressRecord"))
{
newXML.WriteRaw(x.ToString().Replace("<", "<").Replace(">", ">"));
}
Но я столкнулся с проблемой, когда некоторые другие данные на самом деле используют эти символы, и их преобразование нарушает целостность XML. Есть ли способ легко заменить это значение без потери форматирования XML и без необходимости воссоздавать этот узел каждый раз, когда я хочу его использовать?