假设我有一个数据源:
<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");
什么是更好的方式?我做错了什么?
答案 0 :(得分:0)
答案 1 :(得分:0)
我相信你可以用一行来做到这一点:
nav = nav.SelectSingleNode("/Things/thing[@display='Car']/@value");
答案 2 :(得分:0)
xpath查询中的属性表达式错误。
Xpath Expression(For More)
/从根节点
中选择。选择当前节点
@选择属性
如果要按属性选择单个节点
var selectedNode= xpathNavigator.SelectSingleNode("/Things/thing[@display='Car']");
如果您想从所选节点
获取属性值var value = result.GetAttribute("value", string.Empty);