gpt4 book ai didi

c# - 如何反序列化 XML 数组项?

转载 作者:太空宇宙 更新时间:2023-11-03 15:36:06 27 4
gpt4 key购买 nike

我在反序列化 XML 时遇到问题。我让 AccountInformation 工作,但它不适用于 Leauge 元素。 XML 不包含任何“Leauges”标签,我不想添加该标签来让它工作。还有其他方法可以“修复”它吗?我尝试了不同的解决方案,但 leauges 的反序列化结果返回为空。我错过了什么?

感谢任何帮助!

在下面查看我的代码:

更新:

我已经修改了代码和 XML,但我仍然无法工作。我在这里缺少什么?

[Serializable]
[XmlRoot(ElementName = "LeaugeCollection", Namespace = "")]
public class LeagueCollection
{
[XmlArray("Leagues")]
[XmlArrayItem("League",typeof(League))]
public League[] League { get; set; }

[XmlElement(ElementName = "AccountInformation")]
public string AccountInformation { get; set; }

}

[Serializable()]
public class League
{
[XmlElement(ElementName = "Id")]
public int Id { get; set; }

[XmlElement(ElementName = "Name")]
public string Name { get; set; }

[XmlElement(ElementName = "Country")]
public string Country { get; set; }

[XmlElement(ElementName = "Historical_Data")]
public string Historical_Data { get; set; }

[XmlElement(ElementName = "Fixtures")]
public string Fixtures { get; set; }

[XmlElement(ElementName = "LiveScore")]
public string Livescore { get; set; }

[XmlElement(ElementName = "NumberOfMatches")]
public int NumberOfMatches { get; set; }

[XmlElement(ElementName = "LatestMatch")]
public DateTime LatestMatch { get; set; }
}

反序列化代码:

public static void Main(string[] args)
{
XmlSerializer deserializer = new XmlSerializer(typeof(LeagueCollection));

TextReader reader = new StreamReader(@"C:\XmlFiles\XmlSoccer.xml");
object obj = deserializer.Deserialize(reader);
LeagueCollection XmlData = (LeagueCollection)obj;
reader.Close();
}

Link to XML:

提前致谢!

最佳答案

图像中的 XML 缺少实际的数组元素 (Leauges),它只有数组项元素 (Leauge),这就是您无法反序列化它的原因!

更新:好的,尝试重现您的代码,我现在看到在您的 XML 中您的元素拼写为“League”,而在您的代码中拼写为“Leauge”

先解决这个问题!

更新 2:您根据我的意见进行编辑后,似乎工作正常!

关于c# - 如何反序列化 XML 数组项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31830343/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com