2011-05-28 22 views
19

Tengo una función de la siguiente maneraconversión de XML a cadena usando C#

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; 
    } 

estoy pasando un xml a este método desde un method.But otra en el doc.loadxml(), el sistema está a la espera de una cadena y desde im fallecimiento un xml, arroja un error. Ayuda por favor. Gracias de antemano ..

+0

ver mi respuesta puede ser de alguna ayuda –

+0

duplicado: http: //stackoverflow.com/questions/2407302/convert-xmldocument-to-string –

Respuesta

44

As Chris suggests, puede hacerlo de esta manera:

public string GetXMLAsString(XmlDocument myxml) 
{ 
    return myxml.OuterXml; 
} 

O como esta:

public string GetXMLAsString(XmlDocument myxml) 
    { 

     StringWriter sw = new StringWriter(); 
     XmlTextWriter tx = new XmlTextWriter(sw); 
     myxml.WriteTo(tx); 

     string str = sw.ToString();// 
     return str; 
    } 

y si realmente desea crear una nueva XmlDocument luego de hacer esto

XmlDocument newxmlDoc= myxml 
+0

, gracias Kim.Its trabajando bien .. – sachin

+0

1ª respuesta Funciona perfectamente – DeadlyDroid

3
public string GetXMLAsString(XmlDocument myxml) 
    { 
     using (var stringWriter = new StringWriter()) 
     { 
      using (var xmlTextWriter = XmlWriter.Create(stringWriter)) 
      { 
       myxml.WriteTo(xmlTextWriter); 
       return stringWriter.ToString(); 
      } 

     }  
} 
+0

+1 para 'using', el desvío con' GetStringBuilder() 'no es necesario,' stringWriter.ToString() 'lo hará – Andreas

+0

¡actualizado ahora thx! – danyolgiax

28

Hay una manera mucho más simple de convertir su XmlDocument en una cadena; use la propiedad OuterXml. El OuterXml property devuelve una versión de cadena del xml.

public string GetXMLAsString(XmlDocument myxml) 
{ 
    return myxml.OuterXml; 
} 
+0

¡Funciona perfecto! ¡Gracias! –

+0

¡Justo lo que necesitaba, gracias! –