【发布时间】:2020-02-20 00:40:33
【问题描述】:
我有以下 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);
}
}
【问题讨论】:
-
是什么让 XML “特别”?
xmlClass是什么? -
我只是改标题
-
您能否更具体地了解“最深节点”?您不希望它从“file_name”和“date”中获取值吗?
标签: c# xml serialization deserialization linq-to-xml