Pra*_*thi 6 c# xml xpath linq-to-xml
我有一个像下面这样的XML文件:
<Employees>
<Employee Id="ABC001">
<Name>Prasad 1</Name>
<Mobile>9986730630</Mobile>
<Address Type="Perminant">
<City>City1</City>
<Country>India</Country>
</Address>
<Address Type="Temporary">
<City>City2</City>
<Country>India</Country>
</Address>
</Employee>
Run Code Online (Sandbox Code Playgroud)
现在我想要获取所有地址类型.
我尝试下面使用XPath,我得到例外.
var xPathString = @"//Employee/Address/@Type";
doc.XPathSelectElements(xPathString); // doc is XDocument.Load("xml file Path")
Run Code Online (Sandbox Code Playgroud)
例外:XPath表达式计算为意外类型System.Xml.Linq.XAttribute.
我的XPath有什么问题吗?
你的XPath很好(虽然你可能希望它更具选择性),但你必须调整你的评估方式......
XPathSelectElement()顾名思义,它应该只用于选择元素.
XPathEvaluate()更通用,可用于属性.您可以枚举结果,或抓住第一个:
var type = ((IEnumerable<object>)doc.XPathEvaluate("//Employee/Address/@Type"))
.OfType<XAttribute>()
.Single()
.Value;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |