2009-06-20 6 views
5

サイトからXMLを解析して情報を表示するSilverlightアプリケーション(初めて)を作成しようとしています。これを行うには、Windows XP Service Pack 3でVisual Studio 2008を使用しています。また、.NET Framework 3.5 SP1がインストールされています。Silverlightプロジェクト(C#)でXDocumentクラスを使用する方法

私の問題は、私がインターネット上で見たXMLパーサーがないことです。私のコードの先頭には、私は両方の必要な( "System.xml;"を使用し、 "System.linq;"を使用している)行がありますが、XDocument、XMLReader、XMLDocument、型または名前空間が見つからないことを示します。私は.NET Frameworkを持っています。

私はこの問題に関してインターネット上で何も変わっていません。誰にもアイデアはありますか?

EDIT:Silverlightプロジェクトのコンテキスト外でファイルを開くと、XDocumentを使用できることがわかりました。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Shapes; 
using System.Xml.Linq; //Error 1 (See below) 

namespace LastfmAmazon 
{ 
    public partial class Page : UserControl 
    { 
     public Page() 
     { 
      InitializeComponent(); 
     } 

     public void DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
     { 
      XDocument doc = XDocument.Parse(e.Result); //Error 2: see below 

     } 

     public void Button_Click(object sender, RoutedEventArgs e) 
     { 

      if (uname.Text != String.Empty) 
      { 
       App app = (App)Application.Current; 
       app.UserName = uname.Text; 
       String getTopArtists = "http://ws.audioscrobbler.com/2.0/?method=user.gettopartists&user=" + app.UserName + "&api_key=d2d620af554a60f228faed8d502c4936"; 
       uname.Text = "Try Another One!"; 
       WebClient web = new WebClient(); 
       WebClient client = new WebClient(); 
       client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCompleted); 
       client.DownloadStringAsync(new Uri(getTopArtists)); 
      } 
     } 
    } 
} 

エラー1:この行は、次のエラーが含まれています:型または名前空間名 '私は私の問題は、ここで

は、問題を示すいくつかのサンプルコードで発生したプロジェクト全体を開いたときだけです(アセンブリ参照がありません)

エラー2:この行には、次のエラーがあります。型または名前空間の名前 'XDocument'が名前空間に存在しません'System.Xml'(アセンブリ参照がありませんか?)

EDIT 2:いったんライブラリに「参照を追加する」ことを意味したら、アンソニーの答えはこの問題を解決しました。

+0

アイデア1:問題を再現する小さなコードを作成し、質問を編集してコードを追加し、受信した完全なエラーメッセージも追加します。 –

+0

あなたのプロジェクトへの参照として追加するだけでよいでしょう。 –

答えて

9

デフォルトでは、SilverlightプロジェクトにSystem.Xml dllが含まれますが、XDcoumentはSystem.Xml.Linq dllに含まれています。これはプロジェクトに追加する必要があります。

+1

このアセンブリは、Assemblies-> Frameworkではなく、Reference ManagerのAssemblies-> Extensionsにあります。 –

3

...あなたはなどのXMLDocument、XMLReaderの、のために適切なXMLライブラリ

  • への参照を追加していることを確認してください:などXDocument、XNodeについてSystem.Xml.Dll
  • を...:システム.Xml.Linq.dll
+2

小規模な点、Silverlight System.Xml dllにはXmlDocumentオブジェクトがありません。Silverlightにはその特定のDOMのサポートはありません。 Xmlで利用できる唯一のDOMはXDocumentです。 – AnthonyWJones