How to write or create an XML file

How to write or generate an XML file using C # to get the result below?

<?xml version="1.0" encoding="UTF-8"?>
<pages>
<page name="Page Name 1" url="/page-1/" />
<page name="Page Name 2" url="/page-2/" />
<page name="Page Name 3" url="/page-3/" />
<page name="Page Name 4" url="/page-4/" />
</pages>
+3
source share
7 answers
using System.Linq;
using System.Xml;
using System.Xml.Linq;

// ...

using (var writer = XmlWriter.Create("output.xml"))
     new XDocument(
        new XDeclaration("1.0", "UTF-8", null),
        new XElement("pages",
            Enumerable.Range(1, 4)
                .Select(i => new XElement("page",
                                  new XAttribute("name", "Page Name " + i),
                                  new XAttribute("url", "/page-" + i + "/"))))
     ).WriteTo(writer);
+10
source

A fairly simple way might be this:

XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = Encoding.UTF8;
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(@"c:\path\file.xml", settings))
{

    writer.WriteStartElement("pages");

    for (int i = 1; i < 5; i++)
    {
        writer.WriteStartElement("page");
        writer.WriteAttributeString("name", "Page Name " + i.ToString());
        writer.WriteAttributeString("url", string.Format("/page-{0}/", i));
        writer.WriteEndElement(); // page
    }
    writer.WriteEndElement(); // pages
}
+5
source

, - :

System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(Server.MapPath("pages.xml"), System.Text.Encoding.UTF8);

        writer.WriteStartDocument();
        writer.WriteStartElement("pages");

        writer.WriteStartElement("page");
        writer.WriteAttributeString("name", "Page name 1");
        writer.WriteAttributeString("url", "Page url 1");
        writer.WriteEndElement();

        writer.WriteStartElement("page");
        writer.WriteAttributeString("name", "Page name 2 ");
        writer.WriteAttributeString("url", "Page url 2");
        writer.WriteEndElement();

        writer.WriteStartElement("page");
        writer.WriteAttributeString("name", "Page name 3");
        writer.WriteAttributeString("url", "Page url 3");
        writer.WriteEndElement();

        writer.WriteEndElement();
        writer.WriteEndDocument();
        writer.Close();  
+3

.NET framework 2.0, XmlWriter XML, XmlTextWriter.

.NET 3+, XDocument System.Xml.Linq.

+2
using System.Xml;
//...
XmlDocument xmldoc = new XmlDocument();
XmlElement pages = xmldoc.CreateElement("pages");
XmlElement page = null;

for(int i = 1; i <= 4; i++)
{
    page = xmldoc.CreateElement("page");
    page.SetAttribute("name", "Page Name " + i);
    page.SetAttribute("url", "/page-" + i + "/");
    pages.AppendChild(page);
}

xmldoc.AppendChild(xmldoc.CreateXmlDeclaration("1.0", "UTF-8", null));
xmldoc.AppendChild(pages);
xmldoc.Save("output.xml");
+1

. XML- XDocument . , , XDocument. LINQ, XmlDocument/XDocument - . , , .

-, , , XML . , , , - , . . - .

<pages>
    <page>
        <name href="url">Page Name 1</name>
    </page>
</pages>

,

<pages>
    <page>
        <name>Page Name 1
        <url>http://page/</url>
    </page>
</pages>

, ( , .)

EDIT: ; , ( ). , , , , .

0

XML. , .

Pages pages = new Pages();
for(int i=1; i<=4;i++)
{
    Page p = new Page();
    p.name = "Page Name " + i;
    p.url = "/page-" + i + "/";
    pages.Pages.Add(p);
}
Console.Write(pages.ToXml());

" XML"

xml

0

Source: https://habr.com/ru/post/1709031/


All Articles