2012-04-13 7 views
0

Ich frage mich, warum, wenn ich meine XML retrive ich kann keine Elemente von ihm erhalten.XML abrufen WP7

Also im Grunde benutze ich das Telefon, um eine Verbindung zu meinem Web-Service herzustellen.

Die XML-Datei gibt eine TUPLE von Verzeichnisinformationen und Dateiinformationen zurück.

<TupleOfArrayOfDirectoryInfoArrayOfFileInfoe_PmhuPqo xmlns="http://schemas.datacontract.org/2004/07/System"  xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
<m_Item1 xmlns:a="http://schemas.datacontract.org/2004/07/System.IO"> 
<a:DirectoryInfo> 
<OriginalPath xmlns="" xmlns:b="http://www.w3.org/2001/XMLSchema" i:type="b:string">AETN</OriginalPath> 
<FullPath xmlns="" xmlns:b="http://www.w3.org/2001/XMLSchema"    i:type="b:string">C:\inetpub\wwwroot\Files\TEST1</FullPath> 
</a:DirectoryInfo> 
<a:DirectoryInfo> 
<OriginalPath xmlns="" xmlns:b="http://www.w3.org/2001/XMLSchema" i:type="b:string">BT</OriginalPath> 
<FullPath xmlns="" xmlns:b="http://www.w3.org/2001/XMLSchema"  i:type="b:string">C:\inetpub\wwwroot\Files\TEST2</FullPath> 
</a:DirectoryInfo> 
    <a:DirectoryInfo> 
<OriginalPath xmlns="" xmlns:b="http://www.w3.org/2001/XMLSchema" i:type="b:string">Comixology</OriginalPath> 
<FullPath xmlns="" xmlns:b="http://www.w3.org/2001/XMLSchema" i:type="b:string">C:\inetpub\wwwroot\Files\TEST3</FullPath> 
</a:DirectoryInfo> 

Auf meinem Code am Telefon 7 Anwendungsfenster, ich bin mit diesem Stück Code, nachdem ich die xml von der rechten URL heruntergeladen werden:

void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
    { 
     if (e.Error == null) 
     { 
      XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None); 
      var folders = from query in xdoc.Descendants("DirectoryInfo") 
          select new Folder 
          { 
           Name = (string)query.Element("OriginalPath"), 
          }; 
      listBox2.ItemsSource = folders; 
     } 
    }  

ich diesen Fehler:

'System.Collections.IEnumerable' does not contain a definition for 'System' and no extension method 'System' accepting a first argument of type 'System.Collections.IEnumerable' could be found (are you missing a using directive or an assembly reference?) 
+0

Haben Sie Ihre Lösung bereits gereinigt und neu aufgebaut? Es scheint, dass es ein Problem mit den Referenzen geben könnte. Auch an welcher Zeile wird der Fehler ausgelöst? –

+0

Es sind keine Fehler aufgetreten. Es ist nur NAME, das eine leere Zeichenfolge ist. – Kiwimoisi

+1

Ich bin mir nicht sicher, ob ich das verstehe. In Ihrer Frage geben Sie an, dass Sie einen Fehler bezüglich einer Referenz erhalten haben. –

Antwort

2

Ich weiß nichts über den Fehler, aber das Problem mit keinen zurückgegebenen Elementen ist, weil Sie einen Namespace auf die DirectoryInfo Elemente angewendet haben, so müssen Sie suchen:

void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    if (e.Error == null) 
    { 
     XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None); 

     XNamespace aNamespace = XNamespace.Get("http://schemas.datacontract.org/2004/07/System.IO"); 

     var folders = from query in xdoc.Descendants(aNamespace.GetName("DirectoryInfo")) 
         select new Folder 
         { 
          Name = (string)query.Element("OriginalPath"), 
         }; 
     listBox2.ItemsSource = folders; 
    } 
}