Как преобразовать этот список:
List<int> Branches = new List<int>();
Branches.Add(1);
Branches.Add(2);
Branches.Add(3);
в этот XML:
<Branches>
<branch id="1" />
<branch id="2" />
<branch id="3" />
</Branches>
Как преобразовать этот список:
List<int> Branches = new List<int>();
Branches.Add(1);
Branches.Add(2);
Branches.Add(3);
в этот XML:
<Branches>
<branch id="1" />
<branch id="2" />
<branch id="3" />
</Branches>
Вы можете попробовать это с помощью LINQ:
List<int> Branches = new List<int>();
Branches.Add(1);
Branches.Add(2);
Branches.Add(3);
XElement xmlElements = new XElement("Branches", Branches.Select(i => new XElement("branch", i)));
System.Console.Write(xmlElements);
System.Console.Read();
Выход:
<Branches>
<branch>1</branch>
<branch>2</branch>
<branch>3</branch>
</Branches>
Забыл упомянуть: вам нужно включить пространство имен using System.Xml.Linq;
.
EDIT:
XElement xmlElements = new XElement("Branches", Branches.Select(i => new XElement("branch", new XAttribute("id", i))));
вывод:
<Branches>
<branch id="1" />
<branch id="2" />
<branch id="3" />
</Branches>
Вы можете использовать Linq-to-XML
List<int> Branches = new List<int>();
Branches.Add(1);
Branches.Add(2);
Branches.Add(3);
var branchesXml = Branches.Select(i => new XElement("branch",
new XAttribute("id", i)));
var bodyXml = new XElement("Branches", branchesXml);
System.Console.Write(bodyXml);
Или создайте соответствующую структуру классов и используйте Сериализация XML.
[XmlType(Name = "branch")]
public class Branch
{
[XmlAttribute(Name = "id")]
public int Id { get; set; }
}
var branches = new List<Branch>();
branches.Add(new Branch { Id = 1 });
branches.Add(new Branch { Id = 2 });
branches.Add(new Branch { Id = 3 });
// Define the root element to avoid ArrayOfBranch
var serializer = new XmlSerializer(typeof(List<Branch>),
new XmlRootAttribute("Branches"));
using(var stream = new StringWriter())
{
serializer.Serialize(stream, branches);
System.Console.Write(stream.ToString());
}