2010-11-18 47 views
1

Silverlight 4 uygulaması yapıyorum. XML'i okumak için XElement'i kullanmaya çalışıyorum.Silverlight: XML'i ayıklarken hata oluştu

 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); 

istisnadır: Aşağıdaki kod benim için çalışmıyor

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} 

yanlış burada ne yapıyor olabilir?

cevap

1

Sen kullanmalıdır: -

XElement xml = XElement.Parse(data); 

XElement yapıcı inşa etmek elemanın basit adını tanımlamak için bir XName bekliyor (veya implictly bir XName dönüştürülecektir bir dize) olduğunu.

+0

harika çalışıyor, teşekkürler –