C# 反序列化过程中xml节点为空
我有两个课程,定义如下:C# 反序列化过程中xml节点为空,c#,xml,serialization,C#,Xml,Serialization,我有两个课程,定义如下: [Serializable()] public class Topology { [XmlElement("floors")] public Floor[] Floors { get; set; } } [Serializable()] public class Floor { [XmlElement("name")] public string name { get; set; } [XmlElement("map_path
[Serializable()]
public class Topology
{
[XmlElement("floors")]
public Floor[] Floors { get; set; }
}
[Serializable()]
public class Floor
{
[XmlElement("name")]
public string name { get; set; }
[XmlElement("map_path")]
public string map_path { get; set; }
}
我想反序列化下面显示的xml文件,并使用下面指定的方法反序列化xml文件
XMLFile:
<?xml version="1.0" encoding="iso-8859-9"?>
<Topology>
<floors>
<floor id="1">
<name>1</name>
<map_path>C:\</map_path>
</floor>
<floor id="2">
<name>2</name>
<map_path>D:\</map_path>
</floor>
</floors>
</Topology>
static void Main(string[] args)
{
XmlSerializer serializer = new XmlSerializer(typeof(Topology));
StreamReader reader = new StreamReader(@"C:\topology2.xml");
Topology top = (Topology)serializer.Deserialize(reader);
reader.Close();
for (int i = 0; i < top.Floors.Length; i++ )
Console.WriteLine(top.Floors[i].name + top.Floors[i].map_path);
Console.ReadLine();
}
1.
C:\
2.
D:\
反序列化方法:
<?xml version="1.0" encoding="iso-8859-9"?>
<Topology>
<floors>
<floor id="1">
<name>1</name>
<map_path>C:\</map_path>
</floor>
<floor id="2">
<name>2</name>
<map_path>D:\</map_path>
</floor>
</floors>
</Topology>
static void Main(string[] args)
{
XmlSerializer serializer = new XmlSerializer(typeof(Topology));
StreamReader reader = new StreamReader(@"C:\topology2.xml");
Topology top = (Topology)serializer.Deserialize(reader);
reader.Close();
for (int i = 0; i < top.Floors.Length; i++ )
Console.WriteLine(top.Floors[i].name + top.Floors[i].map_path);
Console.ReadLine();
}
static void Main(字符串[]args)
{
XmlSerializer serializer=新的XmlSerializer(类型(拓扑));
StreamReader=新的StreamReader(@“C:\topology2.xml”);
拓扑顶部=(拓扑)序列化程序。反序列化(读取器);
reader.Close();
对于(int i=0;i
我可以获取“楼层”,但无法获取名称和映射路径节点值。我该怎么办?您的XML文件格式不正确,无法让XML序列化程序读取。请按照以下格式操作:
<?xml version="1.0" encoding="iso-8859-9"?>
<Topology>
<floors id="1">
<name>1</name>
<map_path>C:\</map_path>
</floors>
<floors id="2">
<name>1</name>
<map_path>C:\</map_path>
</floors>
</Topology>
1.
C:\
1.
C:\