<?xml version="1.0"?>
<HotelGeos>
<HotelGeoList>
<HotelGeo Country="中国" ProvinceName="河北" ProvinceId="0500" CityName="南戴河" CityCode="0504">
<Districts>
<Location Id="0001" Name="海滨浴场"/>
</Districts>
<CommericalLocations>
<Location Id="050402" Name="海滨地区"/>
</CommericalLocations>
<LandLocations>
<Location Id="0001" Name="南戴河"/>
</LandLocations>
</HotelGeo>
<HotelGeo Country="中国" ProvinceName="河北" ProvinceId="0500" CityName="邢台" CityCode="0505">
<Districts>
<Location Id="0001" Name="市中心"/>
</Districts>
<CommericalLocations>
<Location Id="050501" Name="市中心"/>
</CommericalLocations>
<LandLocations>
<Location Id="0001" Name="人民公园"/>
</LandLocations>
</HotelGeo>
</HotelGeoList>
</HotelGeos>
像这种复杂格式的XML 怎么序列化成 多个 List<t>
<HotelGeos>
<HotelGeoList>
<HotelGeo Country="中国" ProvinceName="河北" ProvinceId="0500" CityName="南戴河" CityCode="0504">
<Districts>
<Location Id="0001" Name="海滨浴场"/>
</Districts>
<CommericalLocations>
<Location Id="050402" Name="海滨地区"/>
</CommericalLocations>
<LandLocations>
<Location Id="0001" Name="南戴河"/>
</LandLocations>
</HotelGeo>
<HotelGeo Country="中国" ProvinceName="河北" ProvinceId="0500" CityName="邢台" CityCode="0505">
<Districts>
<Location Id="0001" Name="市中心"/>
</Districts>
<CommericalLocations>
<Location Id="050501" Name="市中心"/>
</CommericalLocations>
<LandLocations>
<Location Id="0001" Name="人民公园"/>
</LandLocations>
</HotelGeo>
</HotelGeoList>
</HotelGeos>
像这种复杂格式的XML 怎么序列化成 多个 List<t>
解决方案 »
- 焦点不在控件上 但是却触发按钮事件
- url改写问题
- 关于窗体透明问题
- #############我怎样将一个DLL文件与主程序并到一起,执行的时候再释放出来??
- C# 中sql语句问题!
- 问专家:我用类(非抽象类)实现和用接口实现下面的功能,都一样,那接口到底还有哪些作用?
- (急,在线)ArcGis可不可以把Shapefile发布成一个layer服务?(或者其它方式)
- 为什么我在studio.net下写的C#在没有安装.net的机器上不能运行?
- 關於組件開發的菜鳥問題
- mvc 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。
- 请问 怎样得到海康威视动态域名的IP?
- 缓存相关问题
http://www.cnblogs.com/yukaizhao/archive/2011/07/22/xml-serialization.html还有下面 "C#处理Xml的相关随笔" 推荐的一些链接.
public static T Deserialize<T>(string xml)
{
XmlSerializer xs = new XmlSerializer(typeof(T));
MemoryStream memoryStream = new MemoryStream(StringToUTF8ByteArray(xml));
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
object result = xs.Deserialize(memoryStream);
return (T)result;
}----------------------------------------------
[Serializable]
public class HotelGeo
{
[XmlAttribute("Country")]
public string Country { get; set; }
[XmlAttribute("ProvinceName")]
public string ProvinceName { get; set; }
[XmlAttribute("ProvinceId")]
public string ProvinceId { get; set; }
[XmlAttribute("CityName")]
public string CityName { get; set; }
[XmlAttribute("CityCode")]
public string CityCode { get; set; }
[XmlElement("Districts")]
public Districts Districts { get; set; }
[XmlElement("CommericalLocations")]
public Districts CommericalLocations { get; set; }
[XmlElement("LandLocations")]
public Districts LandLocations { get; set; }
}
------------------------------
[Serializable]
public class LandLocations
{
[XmlElement("LandLocations")]
public List<Location> LocationList { get; set; }
}
--------------------------------
[Serializable]
public class Location
{
[XmlAttribute("Id")]
public string Id { get; set; }
[XmlAttribute("Name")]
public string Name { get; set; }
}
public class CommericalLocations
{
[XmlElement("CommericalLocations")]
public List<Location> LocationList { get; set; }
}
public class Districts
{
[XmlElement("Districts")]
public List<Location> LocationList { get; set; }
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
HotelGeos result = Deserialize < HotelGeos>(File.ReadAllText("XMLFile1.xml"));
} public static T Deserialize<T>(string xml)
{
XmlSerializer xs = new XmlSerializer(typeof(T));
MemoryStream memoryStream = new MemoryStream(System.Text.UTF8Encoding.UTF8.GetBytes(xml));
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
object result = xs.Deserialize(memoryStream);
return (T)result;
}
实体类 public class HotelGeos
{
[XmlArray]
public List<HotelGeo> HotelGeoList { get; set; }
} public class HotelGeo
{
[XmlAttribute]
public string Country { get; set; } [XmlAttribute]
public string ProvinceName { get; set; } [XmlAttribute]
public string ProvinceId { get; set; } [XmlAttribute]
public string CityName { get; set; } [XmlAttribute]
public string CityCode { get; set; } [XmlArray]
public List<Location> Districts { get; set; } [XmlArray]
public List<Location> CommericalLocations { get; set; } [XmlArray]
public List<Location> LandLocations { get; set; }
} public class Location
{
[XmlAttribute]
public string Id { get; set; } [XmlAttribute]
public string Name { get; set; }
}