c# - 使用 XPath 获取子元素值,其中日期是元素值
问题描述
鉴于此示例 xml
<?xml version="1.0" encoding="UTF-8"?>
<currencies>
<currency value="gbp">
<Date>11/5/2020</Date>
<Close>1.3102</Close>
</currency>
<currency value="gbp">
<Date>11/4/2020</Date>
<Close>1.2988</Close>
</currency>
<currency value="gbp">
<Date>11/3/2020</Date>
<Close>1.3049</Close>
</currency>
</currencies>
我可以使用货币获取所有节点
var xpath = $"//currencies//currency[@value='{currency}']";
var nodes = doc.XPathSelectElements(xpath);
但我无法正确获取按日期获取节点的语法
//priceDate is a DateTime passed in
//this produces this xpath --- //currencies//currency[@value='gbp']
[Date[text()] =09/15/2015]
var xpath = $"//currencies//currency[@value='{currency}'][Date[text()] ={priceDate:MM/dd/yyyy}]";
var node = doc.XPathSelectElement(xpath);
任何帮助表示赞赏。我最终也想在 xpath 中检索收盘价。
解决方案
您需要注意日期格式。带前导零或不带...
按日期选择货币元素:
/currencies/currency[Date='11/4/2020']
选择按日期关闭元素:
/currencies/currency[Date='11/4/2020']/Close
推荐阅读
- proxy - 在 centos7 中使用 devstack 安装 OpenStack 时出错
- php - 预加载在 Chrome 上工作的图像,而不是 Firefox 或 Safari
- python - 有没有办法在python代码中自动获取所有必要的要求
- google-chrome - Chrome Lighthouse 警告:“表单元素没有关联的标签”(但它们确实有标签)
- javascript - 路由不匹配时不显示未找到页面
- wordpress - Wordpress 响应式菜单不下拉
- kotlin - Kotlin TickerMode 之间的区别
- javascript - add event to element after it remove itself and append itself again
- ecmascript-6 - 如何使用 esm 创建带有汇总的“胖”js 文件?
- asp.net-core - >VS 2017 和 ASP.Net Core 2.1 和实体框架 - 我不想硬编码连接字符串