我是LINQ的新手,正在尝试通过属性和后代元素值查询XML文件。
这是我的XML片段:
<redirurl>
<exceptionList state="FL">
<exception>
<plancode>ZZ</plancode>
<url>https://zzzz.com</url>
</exception>
</exceptionList>
<exceptionList state="NC">
<exception>
<plancode>AA</plancode>
<url>https://aaaa.com</url>
</exception>
<exception>
<plancode>BB</plancode>
<url>https://bbbb.com</url>
</exception>
</exceptionList>
</redirurl>
我正在尝试按状态和计划代码检索url的值。例如,如果exceptionList状态属性=“ NC”和计划代码=“ BB”,我想获取URL“ https://bbbb.com”。
这是我的代码:
var xmlFilePath = "myFilePathHere";
XElement xelement = XElement.Load(xmlFilePath );
IEnumerable<XElement> urlAddress = from el in xelement.Elements("exceptionList")
where (string)el.Attribute("state") == "NC"
&& (string)el.Element("exception").Element("plancode") == "BB"
select el;
我无法正确查询以挽救生命。如果省略查询的第三行(计划代码行),则将得到整个exceptionList节点。我想我可以遍历它来获取计划代码,但这似乎不正确。按原样查询不返回结果。我在此上花费了大约10个小时,编写了教程并查看了代码示例,但我仍然不明白。有人可以告诉我我所缺少的吗?提前致谢。