C# XML反序列化成对象 子元素可变该何解????求大神指教

yinqi025 2014-12-23 02:26:47
XML节构如下:W节点下会有子元素w1-wn n不固定 我现在需要反序列化这个XML成对象该何解?????求大神指教

<w id="218070">
<w1 h="考登比斯" a="哈茨"/>
<w2 h="克罗托内" a="弗洛西诺尼"/>
<w3 h="克罗托内" a="弗洛西诺尼"/>
<w4 h="克罗托内" a="弗洛西诺尼"/>
<w5 h="克罗托内" a="弗洛西诺尼"/>
........
</w>


以下是方便调试代码:
[XmlRoot("w")]
public class Match
{
[XmlAttribute("id")]
public long Id;

//以下不知道该怎么写
[XmlElement("w1")]
public MatchInfo W1;
}


public class MatchInfo
{
[XmlAttribute("h")]
public string HostName;

[XmlAttribute("a")]
public string AwayName;
}


C#反序列化代码如下:
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Match));
Match resultMatch = null;
using (System.IO.Stream stream = new System.IO.MemoryStream(System.Text.Encoding.Default.GetBytes(content)))
{
resultMatch = serializer.Deserialize(stream) as Match;
}



...全文
196 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinqi025 2014-12-23
  • 打赏
  • 举报
回复
引用 4 楼 duanzi_peng 的回复:
百度,linq to xml select new { 字段=值 }
不错 感觉可以一试~~~
  • 打赏
  • 举报
回复
百度,linq to xml select new { 字段=值 }
yinqi025 2014-12-23
  • 打赏
  • 举报
回复
引用 2 楼 wind_cloud2011 的回复:
   DataSet ds = new DataSet(); ds.ReadXml("new.xml"); for (int i = 0; i < ds.Tables.Count; i++) { for (int j = 0; j < ds.Tables[i].Columns.Count; j++) { string s = ds.Tables[i].Rows[0][j].ToString(); } }
我需要的是把这个XML反序列化成对象
wind_cloud2011 2014-12-23
  • 打赏
  • 举报
回复
   DataSet ds = new DataSet(); ds.ReadXml("new.xml"); for (int i = 0; i < ds.Tables.Count; i++) { for (int j = 0; j < ds.Tables[i].Columns.Count; j++) { string s = ds.Tables[i].Rows[0][j].ToString(); } }
wind_cloud2011 2014-12-23
  • 打赏
  • 举报
回复
用dataset来读取就可

111,093

社区成员

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

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

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