Преобразование xml в строку с использованием С#
У меня есть функция ниже
public string GetXMLAsString(XmlDocument myxml)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(myxml);
StringWriter sw = new StringWriter();
XmlTextWriter tx = new XmlTextWriter(sw);
doc.WriteTo(tx);
string str = sw.ToString();//
return str;
}
Я передаю xml этому методу из другого метода. Но в doc.loadxml()
система ожидает строку и, поскольку im передает xml, она выдает help.Pls.
Спасибо заранее.
Ответы
Ответ 1
Как предлагает Крис, вы можете сделать это следующим образом:
public string GetXMLAsString(XmlDocument myxml)
{
return myxml.OuterXml;
}
Или вот так:
public string GetXMLAsString(XmlDocument myxml)
{
StringWriter sw = new StringWriter();
XmlTextWriter tx = new XmlTextWriter(sw);
myxml.WriteTo(tx);
string str = sw.ToString();//
return str;
}
и если вы действительно хотите создать новый XmlDocument
, тогда сделайте это
XmlDocument newxmlDoc= myxml
Ответ 2
Существует гораздо более простой способ конвертировать XmlDocument в строку; используйте свойство OuterXml. Свойство OuterXml возвращает строчную версию xml.
public string GetXMLAsString(XmlDocument myxml)
{
return myxml.OuterXml;
}
Ответ 3
public string GetXMLAsString(XmlDocument myxml)
{
using (var stringWriter = new StringWriter())
{
using (var xmlTextWriter = XmlWriter.Create(stringWriter))
{
myxml.WriteTo(xmlTextWriter);
return stringWriter.ToString();
}
}
}