【发布时间】:2020-11-16 07:01:58
【问题描述】:
我有一个从 XML 文件中读取记录的代码。 XML 文件是:
[XmlRootAttribute("ArrayOfFeedbackData")]
public class FeedbackData
{
public string Criteria { get; set; }
public int Excellent { get; set; }
public int Good { get; set; }
public int Average { get; set; }
public int Dissatisfied { get; set; }
}
读取记录的代码是:
private void EnterFeedback_Load(object sender, EventArgs e)
{
FileStream fs = new FileStream(xmlPath, FileMode.Open, FileAccess.Read);
lstFD = (List<FeedbackData>)xs.Deserialize(fs);
}
每次执行代码时,lstFD = (List<FeedbackData>)xs.Deserialize(fs); 中都会出现错误:
"System.InvalidOperationException: 'There is an error in XML document (2, 2).'
InvalidOperationException: <ArrayOfFeedbackData xmlns=''> was not expected."
示例 XML 文件是:
<?xml version="1.0"?>
<ArrayOfFeedbackData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FeedbackData>
<Criteria>Food Quality</Criteria>
<Excellent>0</Excellent>
<Good>0</Good>
<Average>0</Average>
<Dissatisfied>0</Dissatisfied>
</FeedbackData>
<FeedbackData>
<Criteria>Staff Friendliness</Criteria>
<Excellent>0</Excellent>
<Good>0</Good>
<Average>0</Average>
<Dissatisfied>0</Dissatisfied>
</FeedbackData>
<FeedbackData>
<Criteria>Cleanliness</Criteria>
<Excellent>0</Excellent>
<Good>0</Good>
<Average>0</Average>
<Dissatisfied>0</Dissatisfied>
</FeedbackData>
<FeedbackData>
<Criteria>Order Accuracy</Criteria>
<Excellent>0</Excellent>
<Good>0</Good>
<Average>0</Average>
<Dissatisfied>0</Dissatisfied>
</FeedbackData>
这是我拥有的 XMLFile。 我错过了什么吗?
【问题讨论】:
-
能不能好心加个xml例子?
-
我添加了一个示例 XML 文件..
-
看这里:stackoverflow.com/questions/15544517/… 好像是同样的问题。
-
展示如何创建序列化程序。我敢打赌:
new XmlSerializer(typeof(FeedbackData))。它应该是这样的:new XmlSerializer(typeof(List<FeedbackData>)) -
注意:您可以从班级中删除
XmlRootAttribute- 您不需要它。
标签: c# xml deserialization