J'ai une fonction comme ci-dessous
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;
}
je passe un xml à cette méthode à partir d'une autre méthode.Mais dans la doc.loadxml()
, le système attend une chaîne et puisque je passe un xml, il jette une erreur. Merci d'avance..
Comme Chris le suggère , vous pouvez le faire comme ceci:
public string GetXMLAsString(XmlDocument myxml)
{
return myxml.OuterXml;
}
Ou comme ça:
public string GetXMLAsString(XmlDocument myxml)
{
StringWriter sw = new StringWriter();
XmlTextWriter tx = new XmlTextWriter(sw);
myxml.WriteTo(tx);
string str = sw.ToString();//
return str;
}
et si vous voulez vraiment créer un nouveau XmlDocument
alors faites ceci
XmlDocument newxmlDoc= myxml
Il existe un moyen beaucoup plus simple de convertir votre XmlDocument en chaîne; utilisez la propriété OuterXml . La propriété OuterXml renvoie une version chaîne du 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();
}
}
}