如何删除XML序列化中的标记 [英] How to remove tags in XML Serialization
本文介绍了如何删除XML序列化中的标记的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用以下C#代码生成了XML序列化
I generated a XML Serialization using the following C# code
public class Program
{
static void Main(string[] args)
{
AddressDirectory addr = new AddressDirectory();
Address A1 = new Address();
A1.City = "Chennai";
A1.Number = 1;
addr.addressobj.Add(A1);
Address A2 = new Address();
A2.City = "Coimbatore";
A2.Number = 2;
addr.addressobj.Add(A2);
Serialize(addr);
}
public static void Serialize(AddressDirectory details)
{
XmlSerializer serializer = new XmlSerializer(typeof(AddressDirectory));
using (TextWriter writer = new StreamWriter(@"C:\Users\divakar.m\Documents\Visual Studio 2010\Projects\XmlSerialization2\XmlSer2.xml"))
{
serializer.Serialize(writer, details);
}
}
public class AddressDirectory
{
public List<Address> addressobj = new List<Address>();
}
public class Address
{
public int Number { get; set; }
public string City { get; set; }
}
}
它生成的XML是
The XML it generated was
<?xml version="1.0" encoding="utf-8"?>
<AddressDirectory xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<addressobj>
<Address>
<Number>1</Number>
<City>Chennai</City>
</Address>
<Address>
<Number>2</Number>
<City>Coimbatore</City>
</Address>
</addressobj>
</AddressDirectory>
我的问题是,如何从代码中删除XML中的addressobj标记?
推荐答案
我已经改变了你的代码:
I have changed your code a little bit:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
namespace Test_XmlSerialize2
{
public class Program
{
static void Main(string[] args)
{
// AddressDirectory addr = new AddressDirectory();
List<Address> addr = new List<Address>();
Address A1 = new Address();
A1.City = "Chennai";
A1.Number = 1;
// addr.addressobj.Add(A1);
addr.Add(A1);
Address A2 = new Address();
A2.City = "Coimbatore";
A2.Number = 2;
addr.Add(A2);
Serialize(addr);
}
// new version of Serialize
private static void Serialize(List<Address> addr)
{
XmlSerializer serializer = new XmlSerializer(typeof(List<Address>), new XmlRootAttribute("AddressDirectory"));
using (TextWriter writer = new StreamWriter(@"XmlSer2.xml", false))
{
serializer.Serialize(writer, addr);
}
}
// old version
public static void Serialize(AddressDirectory details)
{
XmlSerializer serializer = new XmlSerializer(typeof(AddressDirectory));
using (TextWriter writer = new StreamWriter(@"XmlSer2.xml", false))
{
serializer.Serialize(writer, details);
}
}
// no need to this class
public class AddressDirectory
{
public List<Address> addressobj = new List<Address>();
}
public class Address
{
public int Number { get; set; }
public string City { get; set; }
}
}
}
这篇关于如何删除XML序列化中的标记的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文