2016-07-11 20 views
0

私は間違っているものの周りを頭で囲んでいますが、私の指を置くことができませんでした。たぶん私はこのフィードをデシリアライズすることでどこが間違っているのか分かります。私はこのような構造を持つXMLフィードからxml配列の逆シリアル化c#

:私は並んで、次のコードを持っている

<Recommendation> 
    <screenshot-urls>   
    <screenshots d="320x480"> 
     <screenshot orientation="portrait" w="320" h="480">url1</screenshot> 
     <screenshot orientation="portrait" w="320" h="480">url2</screenshot> 
     <screenshot orientation="portrait" w="320" h="480">url3</screenshot> 
     <screenshot orientation="portrait" w="320" h="480">url4</screenshot> 
    </screenshots> 
    <screenshots d="480x800"> 
     <screenshot orientation="portrait" w="480" h="800">url1</screenshot> 
     <screenshot orientation="portrait" w="480" h="800">url2</screenshot> 
     <screenshot orientation="portrait" w="480" h="800">url3</screenshot> 
     <screenshot orientation="portrait" w="480" h="800">url4</screenshot> 
    </screenshots> 
    </screenshot-urls> 
</recommendation> 

が、私は4つのスクリーンショットの配列を持っていたしまったあらゆる種類のものを試してみましたが、最も近いましたそれは最初のスクリーンショットのURLだけを使用していました。

public class Recommendation 
{ 
    /// <remarks /> 
    [XmlElement("screenshot-urls")] 
    public TopAppScreenshots[] screenshoturls { get; set; } 

    public class TopAppScreenshots 
    { 
     public TopAppScreenshot[] Screenshots { get; set; } 

     public class TopAppScreenshot 
     { 
      [XmlAttribute("w")] 
      public string Width { get; set; } 

      [XmlAttribute("h")] 
      public string Height { get; set; } 

      [XmlAttribute("orientation")] 
      public string Orientation { get; set; } 

      [XmlText] 
      public string ScreenshotUrl { get; set; } 
     } 
    } 
} 

このコードでは、スクリーンショットオブジェクトは空ですが、私は実際にこのコードが機能するはずの他の例を見ています。私は間違って何をしていますか?

+0

は道がこの回答で説明してみてください:http://stackoverflow.com/questions/4203540/generate-c-sharp-class-from-xml –

+0

良いヒント、その貼り付ける特別なこと知りませんでした!それは本当にきちんとしていますが、まだ動作しませんでした。明日フィードが間違ったフォーマットでないかどうかを確認するためにいくつかのことを試してみます – Flippey

答えて

1
public class Recommendation 
{ 
    [XmlArray("screenshot-urls")] 
    [XmlArrayItem("screenshots")] 
    public TopAppScreenshots[] Screenshoturls { get; set; } 

    public class TopAppScreenshots 
    { 
     [XmlElement("screenshot")] 
     public TopAppScreenshot[] Screenshot { get; set; } 

     [XmlAttribute("d")] 
     public string Dimension { get; set; } 

     public class TopAppScreenshot 
     { 
      [XmlAttribute("w")] 
      public string Width { get; set; } 

      [XmlAttribute("h")] 
      public string Height { get; set; } 

      [XmlAttribute("orientation")] 
      public string Orientation { get; set; } 

      [XmlText] 
      public string ScreenshotUrl { get; set; } 
     } 
    } 
} 
+0

ありがとう、これは完璧に動作します:)私も近づいてきました。XMLArrayアノテーションhte screenshot urlsしかし、私はScreenshotオブジェクト上に配列項目を持っていました – Flippey

関連する問題