如何删除XML序列化中的标记 [英] How to remove tags in XML Serialization

查看:82
本文介绍了如何删除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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆