关于XML转实体类

caiyi000 2011-09-13 01:41:10
谁能帮我把以下XML转成实体类呢?

<?xml version="1.0" encoding="utf-8"?>
<response>
<functionID>abc</functionID>
<totalInfo>
<itemsCount>3</itemsCount>
</totalInfo>
<ItemsList>
<ItemInfo>
<itemName>aaaaa</itemName>
<itemPrice>10</itemPrice>
<ItemInfo/>
<ItemInfo>
<itemName>bbbbb</itemName>
<itemPrice>20</itemPrice>
<ItemInfo/>
</ItemsList>
</response>



public static T DeserializeXML<T>(string pmXMLString) {

XmlSerializer xs = new XmlSerializer(typeof(T));
T tObjext = (T)xs.Deserialize(new StringReader(pmXMLString));
return tObjext;
}



public class response
{
/// <summary>
/// 方法名称
/// </summary>
public string functionID { get; set; }

public totalInfo totalInfo { get; set; }

public ItemsList ItemsList { get; set; }
}

public class totalInfo
{
/// <summary>
/// 产品数量
/// </summary>
public int itemsCount { get; set; }

}

public class ItemsList
{
public List<ItemInfo> ItemInfo
{
set;
get;
}
}

public class ItemInfo
{

public string itemName{ get; set; }

public string itemPrice{ get; set; }
}

var a=DeserializeXML<response>(xmlstring);

我用XmlSerializer方法不行。。ItemsList老实取不到
...全文
583 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
l55913153 2012-02-17
  • 打赏
  • 举报
回复
楼主怎么解决的??????我也遇到同样的问题
萧炎 2011-09-13
  • 打赏
  • 举报
回复
呵呵 恭喜LZ了
effun 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 caiyi000 的回复:]

自己搞定了。。
[/Quote]

看你的样子象是客户端用非标协议通讯,而不同的功能返回的数据格式不一样。如果是这样的情况,我觉得你可以针对不同功能返回的数据格式定义不同的实体类,这样就不需要进行动态的解析了,开发也很方便。
zdzcool 2011-09-13
  • 打赏
  • 举报
回复
自己解析这个文件呗。如果是动态的就只能主动解析了。
至于用XSD来做,没用过。
风骑士之怒 2011-09-13
  • 打赏
  • 举报
回复
http://blog.csdn.net/maxjove/article/details/4702605
caiyi000 2011-09-13
  • 打赏
  • 举报
回复
自己搞定了。。
baysos 2011-09-13
  • 打赏
  • 举报
回复
反序列化。
caiyi000 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 effun 的回复:]

XML架构也是动态的吗?
[/Quote]

有可能是动态的。。但是目前不是。。

所以需要彻底解决
effun 2011-09-13
  • 打赏
  • 举报
回复
XML架构也是动态的吗?
caiyi000 2011-09-13
  • 打赏
  • 举报
回复
自己顶一下。。。
caiyi000 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 effun 的回复:]

在VS自带命令提示符下运行XSD可以为XML自动生成类文件,比如:

xsd abc.xml /classes /language:CS
[/Quote]

我的XML是动态的。不是静态的。。
effun 2011-09-13
  • 打赏
  • 举报
回复
在VS自带命令提示符下运行XSD可以为XML自动生成类文件,比如:

xsd abc.xml /classes /language:CS
zetee 2011-09-13
  • 打赏
  • 举报
回复
用工具XSD.exe 如果不会用,请百度一下
qianainan 2011-09-13
  • 打赏
  • 举报
回复
自己写个程序转呗

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧