当前位置:编程学习 > C#/ASP.NET >>

xml 反序列化 子节点上移。

假如我有一个xml 文件如下。

<root>
<a>a</a>
<sub>
<c>c</c>
<d>d</d>
</sub>
<e>e</e>
</root>


我现在想把xml 反序列化成 下面这这样的类,不借助 sub 类。

public class root
{
        
property string a{get;set;}
property string c{get;set;}
property string d{get;set;}
property string e{get;set;}
}
xml c# --------------------编程问答-------------------- 直接用 Linq2Xml 读取,实例化你的对象吧。

否则用 XmlSerializer 太费劲了。 --------------------编程问答-------------------- 楼上正解..... --------------------编程问答-------------------- 用XmlSerialzer也不麻烦

    public class root : IXmlSerializable
    {
        public string a { get; set; }
        public string c { get; set; }
        public string d { get; set; }
        public string e { get; set; }

        public XmlSchema GetSchema()
        {
            return null;
        }

        public void ReadXml(XmlReader reader)
        {
            if (reader.NodeType != XmlNodeType.Element)
                return;

            var doc = XDocument.Parse(reader.ReadOuterXml());
            this.a = doc.Root.Element("a").Value;
            this.c = doc.Root.Element("sub").Element("c").Value;
            this.d = doc.Root.Element("sub").Element("d").Value;
            this.e = doc.Root.Element("e").Value;
        }

        public void WriteXml(XmlWriter writer)
        {
        }
    }
--------------------编程问答--------------------
引用 1 楼 fangxinggood 的回复:
直接用 Linq2Xml 读取,实例化你的对象吧。

否则用 XmlSerializer 太费劲了。

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,