【问题标题】:XML document error in MVC4 app [duplicate]MVC4 应用程序中的 XML 文档错误 [重复]
【发布时间】:2013-07-06 02:42:42
【问题描述】:

出现以下错误。似乎其他线程可能有很多可能的原因。我使我的代码尽可能简单。

    There is an error in XML document (2, 2).

    public class MovieSummary
    {
         public List<Movie> Movies { get; set; }
    }

    public class Movie
    {
         public int id { get; set; }
         public string name { get; set; }
    }


    public static MovieSummary Deserialize()
    {
        using (TextReader reader = new StreamReader("c:\\movies.xml"))
        {
            XmlSerializer serializer = new XmlSerializer(typeof(MovieSummary));
            return (MovieSummary)serializer.Deserialize(reader);
        }
    }

    public ActionResult GetListOfMovies()
    {
        MovieSummary summary = Deserialize();
        return View(summary);
    }

    <?xml version="1.0" ?> 
    <movies xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     <movie>
      <id>1</id>
      <name>The Dark Knight</name>
     </movie>
    </movies>

【问题讨论】:

标签: c# xml


【解决方案1】:

您的根对象的类型为 MovieSummary。所以序列化程序需要一个根&lt;MovieSummary&gt; 元素。使用 XmlRoot 和 XmlElement 属性重命名 xml 中的元素:

[XmlRoot("movies")]
public class MovieSummary
{
    [XmlElement("movie")]
    public List<Movie> Movies { get; set; }
}


public class Movie
{
    public int id { get; set; }
    public string name { get; set; }
}

【讨论】:

  • 您的答案有效。为什么它不起作用,如果我确实将 添加为我的 xml 文档中的根?我这样做时遇到了同样的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多