Подтвердить что ты не робот

Преобразование 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. Спасибо заранее.

4b9b3361

Ответ 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();
            }

        }    
}