2011-11-07 9 views
0

私はいくつかのXML有する:IEnumerableリファレンスが複数の子タグを解析した後にオブジェクトに設定されていませんか?

<messages> 
    <message> 
     <meta appid="1112" date="20111028" msgid="4498016" msgno="855" permlinkdate="2011-10-28"> 
      <summary>RedBook is a fun book</summary> 
     </meta> 
     <ISBN>1234123412123</ISBN> 
    </message> 
    <message> 
     <meta appid="1112" date="20111028" msgid="4498016" msgno="855" permlinkdate="2007-1-30"> 
      <summary>BlueBook is a good book</summary> 
     </meta> 
     <ISBN>123412341234</ISBN> 
    </message> 
</messages> 

を私はこのXMLを操作するXMLにいくつかのLINQを有する:

public static List<ReviewDTC> GetReviews() 
{ 
    XElement xmlDoc = XElement.Load(@"C:\Users\inelson\Desktop\fiddle.xml"); 

    var dtos = from item in xmlDoc.Descendants("message") 
       select new ReviewDTC() 
       { 
        PubDate = item.Element("meta").Attribute("permlinkdate").Value, 
        Summary = item.Element("summary").Value, 
        Isbn = item.Element("ISBN").Value 
       }; 

    List<ReviewDTC> reviews = new List<ReviewDTC>(); 
    reviews = dtos.ToList(); 

    return reviews; 
} 

上記のコードの目的は、各メッセージ・ノードのための文書を解析することで、メッセージノードごとに、そのノードの子要素(および1つの属性)を持つオブジェクトを作成します。

このコードをデバッグするとき、私はvar dtos =の後にBPを配置し、dtosがインスタンス化するときにdtosがオブジェクトのインスタンスに設定されていないと主張しています新しいReviewDTCオブジェクト。パーサーは、オブジェクトを構築するためにMeta、Summary、またはISBNから読み取ることができませんか?どうしたの?

大変感謝しています。

答えて

2

summary要素は、meta要素の下にあります。そのmeta要素を下回るもちろん

Summary = item.Element("meta").Element("summary").Value, 
+0

はこれを試してみてください。畜生。まあトリックでした。親切に感謝します。 –

関連する問題