Как создать файл XML - PullRequest
       6

Как создать файл XML

2 голосов
/ 09 октября 2009

Мне нужно создать XML-файл здесь

bool result= false;

Как этого добиться в ASP.NET с синтаксисом C #. result - это значение, которое мне нужно добавить в файл XML.

Мне нужно создать XML-файл в папке с таким содержимым

<?xml version="1.0" encoding="utf-8" ?> 
<user>
  <Authenticated>yes</Authenticated> 
</user>

спасибо

Ответы [ 3 ]

3 голосов
/ 09 октября 2009
XElement xml = new XElement("user",
                    new XElement("Authenticated","Yes"))
                );
xml.Save(savePath);

Работает для .net 3 и выше, но Вы можете использовать XmlDocument для более поздних версий

    XmlDocument xmlDoc = new XmlDocument();

    // Write down the XML declaration
    XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0","utf-8",null);

    // Create the root element
    XmlElement rootNode  = xmlDoc.CreateElement("user");
    xmlDoc.InsertBefore(xmlDeclaration, xmlDoc.DocumentElement); 
    xmlDoc.AppendChild(rootNode);

    // Create the required nodes
    XmlElement mainNode  = xmlDoc.CreateElement("Authenticated");
    XmlText yesText= xmlDoc.CreateTextNode("Yes");
    mainNode.AppendChild(yesText);

    rootNode.AppendChild(mainNode);

    xmlDoc.Save(savePath);

Вы также можете использовать XmlWriter, как подсказывает @marc_s, или, по крайней мере, вы можете сохранить xml в файл, например, sting

using(StreamWriter sw = new StreamWriter(savePath))
{
sw.Write(string.Format("<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<user><Authenticated>{0}</Authenticated></user>","Yes"));
}
2 голосов
/ 09 октября 2009

Как насчет этого:

XmlTextWriter xtw = new XmlTextWriter(@"yourfilename.xml", Encoding.UTF8);

xtw.WriteProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\"");
xtw.WriteStartElement("user");
xtw.WriteStartElement("Authenticated");
xtw.WriteValue(result);
xtw.WriteEndElement();  // Authenticated
xtw.WriteEndElement();  // user

xtw.Flush();
xtw.Close();

Или, если вы предпочитаете создавать XML-файл в памяти, вы также можете использовать класс XmlDocument и его методы:

// Create XmlDocument and add processing instruction
XmlDocument xdoc = new XmlDocument();
xdoc.AppendChild(xdoc.CreateProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\""));

// generate <user> element
XmlElement userElement = xdoc.CreateElement("user");

// create <Authenticated> subelement and set it's InnerText to the result value        
XmlElement authElement = xdoc.CreateElement("Authenticated");
authElement.InnerText = result.ToString();

// add the <Authenticated> node as a child to the <user> node
userElement.AppendChild(authElement);

// add the <user> node to the XmlDocument
xdoc.AppendChild(userElement);

// save to file
xdoc.Save(@"C:\yourtargetfile.xml");

Должно работать на любой версии .NET Framework, если в верхней части файла есть предложение using System.Xml;.

Марк

1 голос
/ 05 ноября 2011

Если вы хотите сгенерировать XML, а затем дать пользователю возможность сохранить XML на своей рабочей станции, проверьте сообщение ниже. Это объясняет этот процесс в деталях.

Генерация XML в потоке памяти и загрузка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...