2013-07-06 2 views
0

다음과 같은 오류가 발생합니다. 다른 스레드에서 여러 가지 이유가있을 수있는 것처럼 보입니다. 가능한 한 간단하게 코드를 보관했습니다.MVC4 앱에서 XML 문서 오류가 발생했습니다.

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> 
+0

: ([XML 문서 (2,2) 오류] http://stackoverflow.com/questions/10737892/error-in- xml-document-2-2) –

답변

0

루트 객체의 유형은 MovieSummary입니다. 따라서 serializer는 루트 <MovieSummary> 요소를 기대합니다. 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; } 
} 
+0

당신의 답이 작용합니다. 대신에 실제로 XML 파일의 루트로 를 추가하면 왜 작동하지 않을까요? 내가했을 때 나는 같은 오류가있어. – totalnoob

관련 문제