LINQ XML按属性和嵌套元素的查询

问题描述 投票:0回答:1

我是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个小时,编写了教程并查看了代码示例,但我仍然不明白。有人可以告诉我我所缺少的吗?提前致谢。

linq xml-parsing
1个回答
0
投票
这里是一个Linq序列,可以按照您的要求进行:
© www.soinside.com 2019 - 2024. All rights reserved.