如何使用显示名称从数据源获取值
本文关键字:数据源 获取 何使用 显示 | 更新日期: 2023-09-27 18:23:47
假设我有一个数据源:
<Things>
<thing display = "Choose..." value = "-1"/>
<thing display = "Car" value = "01"/>
<thing display = "Book" value = "47"/>
<thing display = "Plane" value = "20"/>
<thing display = "Other" value = "1"/>
</Things>
我需要为Car定义一个值,例如,通过使用显示名称"Car"。所以,如果我使用"Car",我应该能够定义它的值=01。
XPathNavigator nav = DataSources["MyXmlData"].CreateNavigator();
nav = nav.SelectSingleNode("/Things/thing[./display='Car']");
nav = nav.SelectSingleNode("./value");
什么是正确的方式?我做错了什么?
您需要使用函数:小写
工作xPath示例:
/Things/thing[lower-case(@display)='car']/@value
我相信你可以在一行中做到这一点:
nav = nav.SelectSingleNode("/Things/thing[@display='Car']/@value");
属性表达式在您的xpath查询中是错误的。
Xpath表达式(了解更多)
/从根节点中选择
选择当前节点
@选择属性
如果要按属性选择单个节点
var selectedNode= xpathNavigator.SelectSingleNode("/Things/thing[@display='Car']");
如果您想从所选节点获得属性值
var value = result.GetAttribute("value", string.Empty);