反序列化XML [英] Deserialize XML
本文介绍了反序列化XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要反序列化在C#(.NET 2.0)一个XML文件中。
I want to deserialize a XML file in C# (.net 2.0).
在XML的结构是这样的:
The structure of the XML is like this:
<elements>
<element>
<id>
123
</id>
<Files>
<File id="887" description="Hello World!" type="PDF">
FilenameHelloWorld.pdf
</File>
</Files>
</element>
<elements>
当我尝试反序列化在C#这个结构,我得到的文件名有问题,该值为NULL,我怎么连尝试code我的File类。
When I try to deserialize this structure in C#, I get a problem with the Filename, the value is always NULL, even how I try to code my File class.
请帮助我。 ; - )
Please help me. ;-)
推荐答案
以下工作正常,我:
public class element
{
[XmlElement("id")]
public int Id { get; set; }
public File[] Files { get; set; }
}
public class File
{
[XmlAttribute("id")]
public int Id { get; set; }
[XmlAttribute("description")]
public string Description { get; set; }
[XmlAttribute("type")]
public string Type { get; set; }
[XmlText]
public string FileName { get; set; }
}
class Program
{
static void Main()
{
using (var reader = XmlReader.Create("test.xml"))
{
var serializer = new XmlSerializer(typeof(element[]), new XmlRootAttribute("elements"));
var elements = (element[])serializer.Deserialize(reader);
foreach (var element in elements)
{
Console.WriteLine("element.id = {0}", element.Id);
foreach (var file in element.Files)
{
Console.WriteLine(
"id = {0}, description = {1}, type = {2}, filename = {3}",
file.Id,
file.Description,
file.Type,
file.FileName
);
}
}
}
}
}
这篇关于反序列化XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文