如何序列化xml并获取最深的节点

问题描述 投票:0回答:1

我有以下xml文件

<?xml version="1.0" encoding="utf-8"?>
<root>
    <file_1>
        <file_name Value="" />
        <date Value="" />
        <information>
            <page1>
                <percentage Value="90%" />                
                <profit Value="50%" />                
                <total Value="$1500" />                
            </page1>
        </information>
    </file_1>
</root>

并且我想序列化该xml,但是我希望page1节点中的所有子节点都可以像属性一样进行处理,例如:

var xmlInfo = new List<xmlClass>();
var FieldName = xmlInfo[0].FieldName; // the value of FieldName should be percentage
var data = xmlInfo[0].Value; // the value of data should be 90%

换句话说,我只对最深的节点感兴趣,可以将它们序列化为一个对象。

我有一个序列化方法,但我不知道如何构建该类。

public static T Deserialize<T>(XDocument doc)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));

            using (var reader = doc.Root.CreateReader())
            {
                return (T)xmlSerializer.Deserialize(reader);
            }
        }
c# xml serialization deserialization linq-to-xml
1个回答
0
投票

使用带有字典的xml linq:

© www.soinside.com 2019 - 2024. All rights reserved.