我正在使用具有以下格式的大型xml文件:
<Sales>
<Sale>
<Date>04/20/2010</Date>
<Time>18:17:29</Time>
<Id>P00000001</Id>
<Name>Prod Name</Name>
<Description>Prod Desc</Description>
<Category>Prod Category</Category>
<Subcategory>Prod Subcategory</Subcategory>
<Size>Prod Size</Size>
<Price>25</Price>
<Image>image path</Image>
</Sale>
<Sales>
我的目标是显示价格和计算一段时间内销售的商品的总和:
XDocument xmlDoc = XDocument.Load("Data.xml");
DateTime date = new DateTime();
var queryWeek = from sale in xmlDoc.Descendants("Sale")
where ((sale.Element("Date")>= date.Date.AddDays(-7)) && ((sale.Element("Date")<= date.Date())))
select sale.Element("Price");
Console.WriteLine("",queryWeek);
调试器抱怨: 错误1运算符'&gt; ='无法应用于
类型的操作数'System.Xml.Linq.XElement' and 'System.DateTime'
Error 2 Non-invocable member 'System.DateTime.Date' cannot be used like a method.
请帮忙
德文
答案 0 :(得分:1)
您正在尝试比较DateTime和XElement。您需要将XElement更改为DateTime以进行比较:DateTime.Parse(sale.Element("Date").Value) >= date.Date.AddDays(-7)
。
答案 1 :(得分:0)
您可以使用此技术(在.NET 3.5和4.0中)将XElement显式转换为DateTime:
http://msdn.microsoft.com/en-us/library/bb343203.aspx
XElement root = new XElement("Root", new DateTime(2006, 10, 6, 12, 30, 0));
// Cast from a strictly formatted XML element.
DateTime dt = (DateTime)root;