2010-11-18 5 views
1

저는 Silverlight 4 앱을 제작하고 있습니다. XElement를 사용하여 XML을 읽으려고합니다.Silverlight : XML 비 직렬화 오류

 string data = @"<?xml version='1.0'> 
         <Data> 
          <TopicGroups> 
          <TopicGroup> 
           <Name>Documents</Name> 
           <Id>0</Id> 
          </TopicGroup> 
          </TopicGroups> 
          <Topics> 
          <Topic> 
           <Name>Foo stuff</Name> 
           <Id>1</Id> 
           <GroupId>0</GroupId> 
          </Topic> 
          </Topics> 
          <PlumFiles> 
          <PlumFile> 
           <Name>moons</Name> 
           <Body>we're going to the moon</Body> 
           <TypeExtension>docx</TypeExtension> 
           <Author>Frodo</Author> 
           <CreatedOn>2010-11-18T00:00:00-05:00</CreatedOn> 
          </PlumFile> 
          </PlumFiles> 
         </Data>"; 

     // crash here 
     XElement xml = new XElement(data); 

는 예외입니다 : 다음 코드는 나를 위해 작동하지 않습니다

System.Xml.XmlException: Name cannot begin with the '<' character, hexadecimal value 0x3C. 

    at System.Xml.XmlConvert.VerifyNCName(String name, ExceptionType exceptionType) 
    at System.Xml.XmlConvert.VerifyNCName(String name) 
    at System.Xml.Linq.XName..ctor(XNamespace ns, String localName) 
    at System.Xml.Linq.XNamespace.GetName(String localName, Int32 index, Int32 count) 
    at System.Xml.Linq.XNamespace.GetName(String localName) 
    at System.Xml.Linq.XName.Get(String expandedName) 
    at System.Xml.Linq.XName.op_Implicit(String expandedName) 
    at PlumPudding.MainPage.MainPage_Loaded(Object sender, RoutedEventArgs e) 
    at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args) 
    at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)} System.Exception {System.Xml.XmlException} 

은 내가 잘못 여기서 뭘 할 수 있을까?

답변

1

당신은 사용해야합니다 : -

XElement xml = XElement.Parse(data); 

XElement를 생성자 구성하는 요소의 간단한 이름을 정의 할 XName 기대 (또는 내재적으로 XName로 변환됩니다 문자열)입니다.

+0

위대한 작품, 감사합니다 –