處理一個問題,我似乎無法遍歷元素並將日期值轉換爲xml中的日期時間,然後打印出日期大於「x」日期的所有元素控制檯。 XML文件相當大,但這裏是一個示例。C#Linq to XML元素
<DataSet>
<diffgr:diffgram xmls="">
<NewDataSet>
<USER_LOGIN>
<USER_LOGIN_ID>123</USER_LOGIN_ID>
<DATE>2017-03-01T16:56:16.59-06:00</<DATE>
</USER_LOGIN>
<CONTENT>
<CONTENT_ID>123</CONTENT_ID>
<DATE>2017-03-01T16:56:16.59-06:00</<DATE>
</CONTENT>
ETC. ETC.
<NewDataSet>
</diffgr:diffgram>
<DataSet>
在我的代碼我有,我想通過閱讀和輸出裏面哪裏日期比「硬編碼的一些日期」更大的所有元素的列表。我意識到我可以爲後代中的每個元素都有一個foreach循環,但我希望這是動態的,因爲有更多的元素必須循環通過比我的示例。這是我目前的代碼。這會失敗,並在我的代碼中的where子句中顯示Null異常。如果我刪除where子句,它將打印所有元素。
XDocument doc= XDocument.Load("xmlfile.xml");
DateTime testDate= new DateTime(2017, 03, 01);
IEnumerable<XElement> textSeg=
from element in doc.Descendants("NewDataSet")
where (DateTime)element.Element("DATE")>testDate
select element;
foreach (XElement element in textSeg)
{Console.Writeline(element);}
的[這]可能的複製(http://stackoverflow.com/questions/4570185/how-用datetime-value-using-linq-to-xml查詢)SO問題。 –
看來可能你有一些沒有DATE元素的節點?試着查詢你的數據來找到'where element.Element(「DATE」)== null'或添加'DateTime'類型轉換,並查看哪些節點有問題。 – NetMage