我有一个如下所示的xml:
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>originTransactionID</name>
<value>
<string>23915</string>
</value>
</member>
<member>
<name>responseCode</name>
<value>
<i4>0</i4>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
我想检查是否有任何成员具有名称为 responseCode 的元素,如果存在,我想选择该值。
我可以这样选择:
var test = xDocument.Descendants("member").Elements("value").LastOrDefault().Value;
它可以工作,因为我知道响应代码是成员的最后一个元素,但我不确定这是否是正确的方法。尽管xml是预定义的,但查询此属性还有什么更好的方法吗?
谢谢
是的,您是对的,因为您知道所要查找的元素位于最后一个位置,因此LastOrDefault
可以在您的情况下使用,但对于现实情况而言,这显然不是动态查询。
您可以使用FirstOrDefault
不过在整个集合中查找第一个匹配的元素并获取如下值:-
var test = (string)xDocument.Descendants("member")
.FirstOrDefault(x => (string)x.Element("name") == "responseCode")
?.Element("value");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句