使用C#将xml转换为字符串

时间:2011-05-28 10:48:37

标签: c# 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()中,系统期待一个字符串,因为我传递了一个xml,它会抛出error.Pls帮助。 提前谢谢..

3 个答案:

答案 0 :(得分:49)

As Chris suggests,您可以这样做:

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

答案 1 :(得分:29)

将XmlDocument转换为字符串有一种更简单的方法;使用 OuterXml 属性。 OuterXml property返回xml的字符串版本。

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

答案 2 :(得分:3)

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

        }    
}