0
此問題是從this開始的後續操作。使用Linq從xml解析內部節點
當我嘗試使用linq讀取內部節點時,它不會按預期給我回收集合,而是隻給我一個項目。請參閱測試。
[Test]
public void Should_get_all_items()
{
var item = "<Item status=\"SUCCESS\""+
" message=\"\">" +
"<ItemDate>12/21/2012" +
"<ItemType>MyType1" +
"<ItemUrl title=\"ItemTitle\">http://www.itemurl1.com</ItemUrl>" +
"</ItemType>" +
"</ItemDate>" +
"<ItemDate>12/22/2012" +
"<ItemType>MyType2" +
"<ItemUrl title=\"Item2Title\">http://www.itemurl2.com</ItemUrl>" +
"</ItemType>" +
"</ItemDate>" +
"</Item>";
XDocument xdoc = XDocument.Parse(item);
var query = from i in xdoc.Descendants("Item")
let date = i.Element("ItemDate")
let type = date.Element("ItemType")
let url = type.Element("ItemUrl")
select new ItemDate()
{
Date = ((XText)date.FirstNode).Value,
Type = ((XText)type.FirstNode).Value,
Url = (string)url,
Title = (string)url.Attribute("title"),
};
var qItems = query.ToList();
Assert.That(qItems.Count, Is.EqualTo(2));
}
public class ItemDate
{
public string Date { get; set; }
public string Type { get; set; }
public string Url { get; set; }
public string Title { get; set; }
}
上述測試失敗。任何想法在這裏出了什麼問題?我覺得這個名字項目已經有些誤導這裏我ItemDates
由於收集後我, -Mike
非常好的趕上L.B –