次のようなxmlファイルがあります。
<CommissionTypes>
<Type>CPA</Type>
<Lender>
<Seq>001</Seq>
<PostUrl>http://www.mysite.com</PostUrl>
</Lender>
</CommissionTypes>
</Lenders>
次のようなデータを取得しました。
var config = XDocument.Load(xml);
それをクラス コレクションにマップする必要があります。クラスは次のように構成されています。
public class Lender
{
public string Type { get; set; }
public int Seq { get; set; }
public string PostUrl { get; set; }
public void Lender(string type, int seq, string postUrl)
{
Type = type;
Seq = seq;
PostUrl = postUrl;
}
}
私はしばらくの間linqを使ってこれをやろうとしてきましたが、まだ成功していません。私がやりたいのは、タイプ「CPA」またはその他のタイプのすべての貸し手を取得することです。
何かアドバイス?
// * 更新 * //
以下の更新は、私が現在いるところです。「オブジェクト参照がインスタンスに設定されていません」というエラーが表示され、動作しません。
<CommissionTypes>
<Type type="CPA">
<Lender>
<Seq>001</Seq>
<PostUrl>http://www.mysite.com</PostUrl>
</Lender>
</Type>
</CommissionTypes>
public static List<Lender> GetLenders(string xml)
{
var myXml = XDocument.Load(xml);
var lenders = new List<Lender>();
lenders = (from type in myXml.Descendants("Type")
where type.Attribute("type").Value == "CPA"
===> select new Lender(
"CPA",
type.Element("Seq").Value.ConvertTo<int>(),
type.Element("PostUrl").Value)).ToList();
return lenders;
}