簡體   English   中英

根據日期從xml文檔中檢索節點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM