Asp.net XML Linq查询不工作
我对使用LINQ非常陌生,所以我不能完全确定所有正确的语法等等 这是我到目前为止得到的 我的XMLAsp.net XML Linq查询不工作,asp.net,xml,linq,Asp.net,Xml,Linq,我对使用LINQ非常陌生,所以我不能完全确定所有正确的语法等等 这是我到目前为止得到的 我的XML <?xml version="1.0"?> <Bookings> <Booking BookingNumber="300067649"> <FLIGHTS> <FlightGroups> <FlightGroup ID="1 ">
<?xml version="1.0"?>
<Bookings>
<Booking BookingNumber="300067649">
<FLIGHTS>
<FlightGroups>
<FlightGroup ID="1 ">
<Flights>
<Flight ID="1">
<ADULTS>1</ADULTS>
<DEPARTURE_DATE>18/02/2006</DEPARTURE_DATE>
</Flight>
</Flights>
</FlightGroup>
</FlightGroups>
</FLIGHTS>
</Booking>
</Bookings>
基本上,我正在尝试选择今天之前的所有航班,但似乎无法实现这一点
根据您当前的文化背景,
18/02/2006
可能无法转换为DateTime
(日期在月份之前。如果您在美国,则月份应在日期之前)
这会抛出一个错误(我在美国)
这项工作:
var d2 = DateTime.Parse("02/18/2006");
我只是尝试了下面的测试,一切都如期进行(我更改了日期的格式)。您可能需要提供格式提供程序来转换日期
var str = @"<?xml version=""1.0""?>
<Bookings>
<Booking BookingNumber=""300067649"">
<FLIGHTS>
<FlightGroups>
<FlightGroup ID=""1"">
<Flights>
<Flight ID=""1"">
<ADULTS>1</ADULTS>
<DEPARTURE_DATE>02/18/2006</DEPARTURE_DATE>
</Flight>
</Flights>
</FlightGroup>
</FlightGroups>
</FLIGHTS>
</Booking>
</Bookings>
";
var xel = System.Xml.Linq.XElement.Parse(str);
var flights = xel.Descendants("Flight");
var tests = flights.Where(f => DateTime.Parse(f.Element("DEPARTURE_DATE").Value).Date < DateTime.Now.Date);
foreach (var test in tests)
{
System.Console.WriteLine(test.Element("DEPARTURE_DATE").Value);
}
var str=@”
1.
02/18/2006
";
var xel=System.Xml.Linq.XElement.Parse(str);
var flights=像素后代(“flights”);
var tests=flights.Where(f=>DateTime.Parse(f.Element(“出发日期”).Value).DATE
根据您当前的文化背景,18/02/2006
可能无法转换为日期时间(日期在月份之前。如果您在美国,则月份应在日期之前)
这会抛出一个错误(我在美国)
这项工作:
var d2 = DateTime.Parse("02/18/2006");
我只是尝试了下面的测试,一切都如期进行(我更改了日期的格式)。您可能需要提供格式提供程序来转换日期
var str = @"<?xml version=""1.0""?>
<Bookings>
<Booking BookingNumber=""300067649"">
<FLIGHTS>
<FlightGroups>
<FlightGroup ID=""1"">
<Flights>
<Flight ID=""1"">
<ADULTS>1</ADULTS>
<DEPARTURE_DATE>02/18/2006</DEPARTURE_DATE>
</Flight>
</Flights>
</FlightGroup>
</FlightGroups>
</FLIGHTS>
</Booking>
</Bookings>
";
var xel = System.Xml.Linq.XElement.Parse(str);
var flights = xel.Descendants("Flight");
var tests = flights.Where(f => DateTime.Parse(f.Element("DEPARTURE_DATE").Value).Date < DateTime.Now.Date);
foreach (var test in tests)
{
System.Console.WriteLine(test.Element("DEPARTURE_DATE").Value);
}
var str=@”
1.
02/18/2006
";
var xel=System.Xml.Linq.XElement.Parse(str);
var flights=像素后代(“flights”);
var tests=flights.Where(f=>DateTime.Parse(f.Element(“出发日期”).Value).DATE
FYI,加载字符串时可以使用XElement.Parse()而不是Load。FYI,可以使用XElement.Parse()加载字符串时不加载。谢谢-我已将此项工作完成-我已将您的工作代码转换为VB,并且语句WHERE部分的语法不同谢谢-我已将此项工作完成-我已将您的工作代码转换为VB,并且语句WHERE部分的语法不同
var str = @"<?xml version=""1.0""?>
<Bookings>
<Booking BookingNumber=""300067649"">
<FLIGHTS>
<FlightGroups>
<FlightGroup ID=""1"">
<Flights>
<Flight ID=""1"">
<ADULTS>1</ADULTS>
<DEPARTURE_DATE>02/18/2006</DEPARTURE_DATE>
</Flight>
</Flights>
</FlightGroup>
</FlightGroups>
</FLIGHTS>
</Booking>
</Bookings>
";
var xel = System.Xml.Linq.XElement.Parse(str);
var flights = xel.Descendants("Flight");
var tests = flights.Where(f => DateTime.Parse(f.Element("DEPARTURE_DATE").Value).Date < DateTime.Now.Date);
foreach (var test in tests)
{
System.Console.WriteLine(test.Element("DEPARTURE_DATE").Value);
}