Вот то, как я в настоящее время преобразовываю XMLDocument для Строкового представления
StringWriter stringWriter = new StringWriter();
XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter);
xmlDoc.WriteTo(xmlTextWriter);
return stringWriter.ToString();
Проблема с этим методом состоит в том, что, если я имею "((кавычки), которые я имею в атрибутах) он выходит из них.
Например:
<Campaign name="ABC">
</Campaign>
Выше ожидаемый XML. Но это возвращается
<Campaign name=\"ABC\">
</Campaign>
Я могу сделать Строку. Замена "\", но является тем методом хорошо? Есть ли какие-либо побочные эффекты? Это будет хорошо работать, если сам XML будет содержать "\"
Нет цитат. Это просто отладчик VS. Попробуйте распечатать на консоли или сохранить в файл, и вы увидите. В качестве примечания: всегда выбрасывайте одноразовые предметы:
using (var stringWriter = new StringWriter())
using (var xmlTextWriter = XmlWriter.Create(stringWriter))
{
xmlDoc.WriteTo(xmlTextWriter);
xmlTextWriter.Flush();
return stringWriter.GetStringBuilder().ToString();
}
"
в отладчике отображается как \"
, но данные в строке правильные, и вам не нужно ничего заменять. Попробуйте сделать дамп строки в файл, и вы увидите, что строка корректна.
Если xmlDoc является объектом XmlDocument, что не так с xmlDoc.OuterXml?
return xmlDoc.OuterXml;
Свойство OuterXml возвращает строковую версию xml.