Преобразование XmlDocument в String
вот как я в настоящее время преобразования объект XmlDocument to строка
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 ответов
нет никаких цитат. Это просто отладчик VS. Попробуйте распечатать на консоли или сохранить в файл, и вы увидите. В качестве примечания: всегда утилизируйте одноразовые предметы:
using (var stringWriter = new StringWriter())
using (var xmlTextWriter = XmlWriter.Create(stringWriter))
{
xmlDoc.WriteTo(xmlTextWriter);
xmlTextWriter.Flush();
return stringWriter.GetStringBuilder().ToString();
}
предположим, есть объект XmlDocument xmlDoc что с xmlDoc.OuterXml?
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()
"
указана как \"
в отладчике, но правильные данные в строке, и вам не нужно ничего заменять. Попробуйте сбросить строку в файл, и вы заметите, что строка верна.