1

Silverlight 4 アプリを作成しています。XElement を使用して 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}

ここで何が間違っているのでしょうか?

4

1 に答える 1

1

あなたが使用する必要があります: -

XElement xml = XElement.Parse(data);

XElement コンストラクターは、XName構築する要素の名前 (または暗黙的に に変換される文字列XName) を単純に定義する を期待しています。

于 2010-11-18T17:52:27.010 に答える