关于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老实取不到
...全文
663 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
  • 打赏
  • 举报
回复
自己写个程序转呗
内容概要:本文围绕不确定环境下的多式联运路径优化问题展开研究,提出并实现了基于AFO算法、遗传算法(GA)和粒子群优化算法(PSO)的三种智能优化方法,并借助Matlab平台完成算法编程与仿真。研究构建了考虑时间、成本、运风险等多重不确定因素的路径优化模型,系统比较了AFO、GA、PSO三种算法在收敛速度、全局寻优能力和稳定性方面的表现,同时引入Matlab自带的全局优化搜索器作为基准对照,深入分析各算法在复杂物流网络中的适用边界与性能差异。研究表明,AFO算法在解决此类组合优化问题时展现出更快的收敛效率和更强的局部规避能力。; 适合人群:具备一定Matlab编程基础与运筹优化知识,从事物流工程、交通运输规划、智能算法开发等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多式联运、综合货运网络中的路径决策支持系统构建;②为不确定性条件下复杂路径规划问题提供智能算法选型依据与技术实现方案;③支持科研人员复现主流优化算法并开展横向性能对比实验,推动算法改进与实际落地。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析算法实现流程,重点理解目标函数设计、约束条件处理及参数敏感性分析部分,可通过调整问题规模与算法参数进行对比实验,进一步拓展至动态路径规划或大规模网络优化等延伸场景。

111,129

社区成员

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

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

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