I have a function as below
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;
}
i am passing an xml to this method from an another method.But in the doc.loadxml()
, the system is expecting a string and since im passing an xml, it throws error.Pls help.
Thanks in advance..
As Chris suggests, you can do it like this:
public string GetXMLAsString(XmlDocument myxml)
{
return myxml.OuterXml;
}
Or like this:
public string GetXMLAsString(XmlDocument myxml)
{
StringWriter sw = new StringWriter();
XmlTextWriter tx = new XmlTextWriter(sw);
myxml.WriteTo(tx);
string str = sw.ToString();//
return str;
}
and if you really want to create a new XmlDocument
then do this
XmlDocument newxmlDoc= myxml
There's a much simpler way to convert your XmlDocument to a string; use the OuterXml property. The OuterXml property returns a string version of the xml.
public string GetXMLAsString(XmlDocument myxml)
{
return myxml.OuterXml;
}
public string GetXMLAsString(XmlDocument myxml)
{
using (var stringWriter = new StringWriter())
{
using (var xmlTextWriter = XmlWriter.Create(stringWriter))
{
myxml.WriteTo(xmlTextWriter);
return stringWriter.ToString();
}
}
}
Source: Stackoverflow.com