Tes*_*stK 3 c# xml linq-to-xml
我有一个 XDocument 对象,我试图根据子元素的值获取直接父元素。
获取子元素的值一直没有问题,但我正在努力寻找仅获取父元素的正确方法。由于没有太多使用 XML,我怀疑解决方案很简单,而且我想得太多了。
本质上,基于下面的 XML,如果<Active>true</Active>我想要直接父元素(即<AlertNotification>)而不需要其他元素。
先感谢您。
XML 的示例
<?xml version="1.0" encoding="utf-16"?>
<Policies xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLschema">
<PolicyID>1</PolicyID>
<EmailNotification>
<Active>false</Active>
</EmailNotification>
<AlertNotification>
<Active>true</Active>
</AlertNotification>
<AlarmEnabled>
<Active>false</Active>
</AlarmEnabled>
</Policies>
Run Code Online (Sandbox Code Playgroud)
utf-16我认为你应该将第一行中的替换为utf-8。那么你可以试试这个:
XDocument doc = XDocument.Load(your file);
var elements = doc.Descendants("Active")
.Where(i => i.Value == "true")
.Select(i => i.Parent);
Run Code Online (Sandbox Code Playgroud)