我有一个看起来像
的xml<response>
<book>
<title>Harry Potter</title>
<Price>
<Currency>USD</Currency>
<Amount>$19.89</Amount>
</Price>
</book>
</response>
获取title元素没有问题,但是当我试图获取价格内的所有值时,它不起作用。
var prices = from price in xmlDoc.Descendants("Price")
select new
{
currency = price.Element("currency").Value,
amount = price.Element("amount").Value,
};
答案 0 :(得分:4)
鉴于您的XML代码段,此代码可以填充一系列对象
var books = from book in document.Descendants("book")
let title = book.Element("title").Value
let price = book.Element("Price")
let currency = price.Element("Currency").Value
let amount = price.Element("Amount").Value
select new
{
Title = title,
Price = new
{
Currency = currency,
Amount = amount
}
};
此结构遵循与XML建立的相同的层次结构。当然,如果你愿意的话,你可以把它压平成一个单层。
答案 1 :(得分:2)
我将货币的外壳和金额元素更改为标题大小写,并且工作正常。
var prices =
from price in xmlDoc.Descendants("Price")
select new
{
currency = price.Element("Currency").Value,
amount = price.Element("Amount").Value,
};
XML区分大小写。