因此,我只需要在<and>
内而不在<not>
内的那些等于的值。所以,我需要以下内容:7942和6252.我如何获得这些?
<aaa>
<and>
<equal ident="qwe">7942</equal>
<equal ident="qwe">6252</equal>
<not>
<equal ident="qwe">1056</equal>
</not>
<not>
<equal ident="qwe">6562</equal>
</not>
</and>
</aaa>
答案 0 :(得分:0)
这是一个无效的xml,你无法使用Linq解析它,或者你有拼写错误,并且开始标记名称应该与结束标记名称匹配,例如:
<aaa>
<and>
<equal ident="qwe">7942</equal>
<equal ident="qwe">6252</equal>
<not>
<equal ident="qwe">1056</equal>
</not>
<not>
<equal ident="qwe">6562</equal>
</not>
</and>
</aaa>
解析此xml看起来像:
var xdoc = XDocument.Load(path_to_xml);
var result = xdoc.Descendants("and").Elements("equal").Select(e => (int)e);
给出:
7942
6252
与XPath相同
var result = xdoc.XPathSelectElements("//and/equal").Select(e => (int)e);