使用c#在XDocument中获取相同级别的所有XML属性值

时间:2018-02-05 12:22:12

标签: c# xml xpath

我有以下XML

babelrc config for spread operator

我需要的是从XDocument XML获取同一级别的XML中每个“cascadingentity”部分的“condition”属性的所有值

在这种情况下,结果应为

clm_bankingrelationship.clm_agreementid clm_bankingrelationship.clm_bankingrelationshipid

我已经尝试了各种各样的方法,但要么我得到所有现有的后代(等级)的所有值,要么只得到第一个。我需要的是同一级别的第一个元素的值。

任何提示都值得赞赏。

THX

编辑:

这里是XML:

VARCHAR

1 个答案:

答案 0 :(得分:2)

您可以使用XPath获取这些值:

var xml = XDocument.Load(PATH_TO_XML);
var conditions = xml.XPathEvaluate("rootentity/cascadingentities/cascadingentity/" 
                                 + "fetchXML/fetch/entity/filter/condition");
var values = ((IEnumerable<object>)conditions).OfType<XElement>()
                 .Select(e => e.Attribute("value").Value.Trim('{', '}'));

在行动HERE中查看。