首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于节点选择xml后代

基于节点选择xml后代
EN

Stack Overflow用户
提问于 2016-10-28 10:22:03
回答 1查看 949关注 0票数 1

我有一个XML,我想根据日期选择一个元素。因此,Date后代有少于今天的日期列表。

XML的值如下所示

代码语言:javascript
运行
复制
<Dates>
<Department>
 <ID>Food</ID>
 <Date>25-11-2016</Date>
</Department>
<Department>
 <ID>Sport</ID>
 <Date>26-10-2016</Date>
</Department>
</Dates>

现在,我只需要选择日期小于今天的元素,下面的查询将选择日期并从xml中删除项。

代码语言:javascript
运行
复制
XDocument newXML = XDocument.Load(new StringReader(xmlValues));
var q = from node in newXML.Descendants("Date")           
        let attr = node.Value where attr != null && DateTime.ParseExact
        (attr, "dd-MM-yyyy", CultureInfo.InvariantCulture) < DateTime.Today    
        select node.Parent;             
q.ToList().ForEach(x => x.Remove());

现在,我怎样才能选择以下的项目,其中有日期少于今天?

代码语言:javascript
运行
复制
<Department>
 <ID>Sport</ID>
 <Date>26-10-2016</Date>
</Department>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-28 16:10:56

尝尝这个

代码语言:javascript
运行
复制
            string xml =
                "<Dates>" +
                    "<Department>" +
                     "<ID>Food</ID>" +
                     "<Date>25-11-2016</Date>" +
                    "</Department>" +
                    "<Department>" +
                     "<ID>Sport</ID>" +
                     "<Date>26-10-2016</Date>" +
                    "</Department>" +
                "</Dates>";

            XElement dates = XElement.Parse(xml);

            List<XElement> departs = dates.Descendants("Department").Where(x => DateTime.ParseExact(x.Element("Date").Value, "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture) < DateTime.Now).ToList();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40303047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档