Frage

Ich baue eine Silverlight 4 App. Ich versuche, XElement zu verwenden XML zu lesen. Der folgende Code funktioniert nicht für mich:

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

Die Ausnahme ist:

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}

Was könnte ich falsch machen hier?

War es hilfreich?

Lösung

Sie sollten verwendet werden: -

XElement xml = XElement.Parse(data);

Der XElement Konstruktor wird ein XName erwarten einfach, den Namen des Elements zu konstruieren, zu definieren (oder eine Zeichenfolge, die auf ein XName werden implizit konvertiert wird).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top