我有下面的XML:如何使用後代和LINQ to XML複雜數據得到了兩類
<?xml version="1.0"?>
<Script>
<object Id="ID1">
<Expression>EXPR1</Expression>
<Result>value="0" action="sleep"</Result>
<Result>value="1" action="wakeup"</Result>
<Result>value="2" action="shutdown"</Result>
<Result>value="3" action="startup"</Result>
</object>
<object Id="ID2">
<Expression>EXPR2</Expression>
<Result>value="10" action="sleep"</Result>
<Result>value="11" action="wakeup"</Result>
<Result>value="12" action="shutdown"</Result>
<Result>value="13" action="startup"</Result>
</object>
</Script>
我正嘗試抓取數據到這樣一類:
public class Script
{
public string Id { get; set; }
public string Expression { get; set; }
public List<ScriptItem> Results { get; set; }
}
public class ScriptItem
{
public string Value { get; set; }
public string Action { get; set }
}
但我真的很困惑和混亂。
這裏是一個嘗試例如:
var list = from item in xmlDoc.Descendants("object")
let id = item.Elements("Id")
let expression = item.Elements("Expression")
let resultlist = item.Elements("Result")
where id != null
select new Script
{
ObjectId = id.ToString(),
Expression = expression.ToString(),
Results = result.ToList()
};
我可不是專家LINQ和拉姆達,所以感謝任何形式的幫助。
那些結果標籤應該是屬性嗎? – Magus
你的'Script'對象沒有'ObjectId'屬性... – bump
不應該你的XML看起來更像這樣:' sleep '? –
bump