![](/img/trans.png)
[英]Retrieving leaves from differently branched parent nodes with C# in an XML document
[英]Retrieving nodes from xml document based on date
基本上我有一個xml文檔,我想根據發布日期檢索一些數據。
例如,假設我有以下xml
<books>
<book>
<name>Book 1<name>
<release_date>2011-11-10</release_date>
</book>
<book>
<name>Book 2<name>
<release_date>2012-03-16</release_date>
</book>
<book>
<name>Book 3<name>
<release_date>2010-01-22</release_date>
</book>
<book>
<name>Book 4<name>
<release_date>2011-12-22</release_date>
</book>
</books>
所以我想要的是例如我通過日期11/15/2011,並且只返回所有以后發布的文件? 知道如何實現嗎?
是這樣的嗎?:
var returnedEl = from XElement e in doc.Root.Elements where e.Element("release_date")> passedDate select e;
那會是另一種有效的方法嗎?
是的,你非常接近解決方案
var xDoc = XDocument.Load("aa.xml");
DateTime passedDate = new DateTime(2010,11,11);
var books = xDoc.Descendants("book")
.Where(b=>DateTime.ParseExact(b.Element("release_date").Value,"yyyy-MM-dd",CultureInfo.InvariantCulture)>passedDate)
.ToList();
這也可以,它使用System.Xml.XPath
命名空間中的XPathSelectElements
:
DateTime dt = new DateTime(2011, 11, 15);
XDocument doc = XDocument.Load(@"Data.xml");
var result = doc.XPathSelectElements("books/book/release_date")
.Where(el => Convert.ToDateTime(el.Value) > dt);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.