Преобразование XmlDocument в строку
вот как я сейчас конвертирую 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 содержит ""
5 ответов:
там нет никаких кавычек. Это просто против отладчика. Попробуйте распечатать на консоли или сохранить в файл, и вы увидите. В качестве примечания: всегда утилизируйте одноразовые предметы:
using (var stringWriter = new StringWriter()) using (var xmlTextWriter = XmlWriter.Create(stringWriter)) { xmlDoc.WriteTo(xmlTextWriter); xmlTextWriter.Flush(); return stringWriter.GetStringBuilder().ToString(); }
предположим, есть объект XmlDocument xmlDoc что с xmlDoc.Внешний мир?
return xmlDoc.OuterXml;
на свойство OuterXml возвращает строковую версию xml.
Если вы используете
Windows.Data.Xml.Dom.XmlDocument
версияXmlDocument
(используется, например, в приложениях UWP), вы можете использоватьyourXmlDocument.GetXml()
чтобы получить XML в виде строки.
как метод расширения:
public static class Extensions { public static string AsString(this XmlDocument xmlDoc) { using (StringWriter sw = new StringWriter()) { using (XmlTextWriter tx = new XmlTextWriter(sw)) { xmlDoc.WriteTo(tx); string strXmlText = sw.ToString(); return strXmlText; } } } }
теперь использовать просто:
yourXmlDoc.AsString()