2011-10-28 85 views
0

我有以下XML:LINQ XML选择内选择

<transactionSearchResult> 
<resultsInThisPage>14</resultsInThisPage> 
<currentPage>1</currentPage> 
<totalPages>1</totalPages> 
<date>2011-10-28T11:20:10.000-02:00</date> 
<transactions> 
<transaction> 
<date>2011-06-17T18:21:03.000-03:00</date> 
<reference>ba3b7d36-a9e6-4d48-82b8-edf31a18fa49</reference> 
<code>4E63AE64-24CF-4F70-A275-4B964E3DA6A5</code> 
<type>1</type> 
<status>4</status> 
<paymentMethod> 
<type>1</type> 
</paymentMethod> 
<grossAmount>1.00</grossAmount> 
<discountAmount>0.00</discountAmount> 
<feeAmount>0.46</feeAmount> 
<netAmount>0.54</netAmount> 
<extraAmount>0.00</extraAmount> 
<lastEventDate>2011-07-01T19:27:36.000-03:00</lastEventDate> 
</transaction> 
<transaction> 
    . 
    . 
    . 
</transaction> 
    . 
    . 
    . 

的LINQ statment:

 
    var transactions = from transaction in xml.Descendants("transaction") 
      select new 
      { 
       code = transaction.Element("code").Value, 
       reference = transaction.Element("reference").Value, 
       date = transaction.Element("date").Value, 
       type = transaction.Element("type"), 
       status = transaction.Element("status"), 
       grossAmount = transaction.Element("grossAmount").Value, 
       discountAmount = transaction.Element("discountAmount").Value, 
       feeAmount = transaction.Element("feeAmount").Value, 
       netAmount = transaction.Element("netAmount").Value, 
       extraAmount = transaction.Element("extraAmount").Value, 
       lastEventDate = transaction.Element("lastEventDate").Value, 
       paymentMethod = from p in transaction.Descendants("paymentMethod") 
            select p.Element("type").Value};

除了PAYMENTMETHOD,一切正常......

+0

你想付款方法看起来像什么?它应该是什么类型? – StriplingWarrior

回答

1

你在找什么东西更像这样?

paymentMethod = int.Parse(transaction.Element("paymentMethod").Element("type").Value) 
+0

是的!非常感谢你!就像我想要的那样工作! – ShadowG

+1

可能更好的替代语法:'paymentMethod =(int)(transaction.Element(“paymentMethod”)。Element(“type”))' –

+0

@JimWooley:谢谢你的提示。我不知道你可以隐式地投射这样的XElements。 – StriplingWarrior