Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试读取代码中的XML值时出错_C#_Xml_Deserialization - Fatal编程技术网

C# 尝试读取代码中的XML值时出错

C# 尝试读取代码中的XML值时出错,c#,xml,deserialization,C#,Xml,Deserialization,我有一个从XML文件读取记录的代码。XML文件是: [XmlRootAttribute("ArrayOfFeedbackData")] public class FeedbackData { public string Criteria { get; set; } public int Excellent { get; set; } public int Good { get; set; } public

我有一个从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; }
}
<?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>
读取记录的代码是:

  private void EnterFeedback_Load(object sender, EventArgs e)
  {
      FileStream fs = new FileStream(xmlPath, FileMode.Open, FileAccess.Read);
      lstFD = (List<FeedbackData>)xs.Deserialize(fs);
  }
private void EnterFeedback\u加载(对象发送方,事件参数e)
{
FileStream fs=newfilestream(xmlPath,FileMode.Open,FileAccess.Read);
lstFD=(List)xs.反序列化(fs);
}
每次执行代码时,我都会在
lstFD=(List)xs.Deserialize(fs)中出错

“System.InvalidOperationException:'XML文档(2,2)中存在错误。”
InvalidOperationException:不应为。“
示例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; }
}
<?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>

食品质量
0
0
0
0
员工友好
0
0
0
0
清洁
0
0
0
0
订单准确性
0
0
0
0
这是我拥有的XML文件。 我遗漏了什么吗?

请尝试以下内容:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XmlReader reader = XmlReader.Create(FILENAME);
            XmlSerializer serializer = new XmlSerializer(typeof(ArrayOfFeedbackData));
            ArrayOfFeedbackData arrayOFeedbackData = (ArrayOfFeedbackData)serializer.Deserialize(reader);
        }
    }

    public class ArrayOfFeedbackData
    {
        [XmlElement()]
        public List<FeedbackData> FeedbackData { get; set; }
    }
    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; }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Xml;
使用System.Xml.Serialization;
命名空间控制台应用程序1
{
班级计划
{
常量字符串文件名=@“c:\temp\test.xml”;
静态void Main(字符串[]参数)
{
XmlReader=XmlReader.Create(文件名);
XmlSerializer serializer=新的XmlSerializer(typeof(ArrayOfFeedbackData));
ArrayOfFeedbackData ArrayOfFeedbackData=(ArrayOfFeedbackData)序列化程序。反序列化(读取器);
}
}
公共类ArrayOfFeedbackData
{
[XmlElement()]
公共列表反馈数据{get;set;}
}
公共类反馈数据
{
公共字符串条件{get;set;}
公共int{get;set;}
公共int Good{get;set;}
公共整数平均值{get;set;}
公共int不满意{get;set;}
}
}

请您添加一个示例xml好吗?我已经添加了一个示例xml文件。请看这里:似乎是相同的问题。演示如何创建序列化程序。我打赌你会:
新的XmlSerializer(typeof(FeedbackData))
。它应该是这样的:
newxmlserializer(typeof(List))
注意:您可以从类中删除
XmlRootAttribute
,您不需要它。