我有一个XML文件。
我尝试了这个查询。但当我得到节点“Val1”时,我喜欢当我想要一个值为“AAA”和“BBB”的List时
一个想法?
var res = doc.Descendants("Tags")
.Where(p => p.Elements("code")
.Any(c => (string)c.Parent.Attribute("id") == "Val1"))
.Select(i => i.ToString()).ToArray().First();
<?xml version="1.0" encoding="utf-8" ?>
<MyTag>
<Tags id="Val1">
<code>AAA</code>
<code>BBB</code>
</Tags>
<Tags id="Val2">
<code>CCC</code>
<code>DDD</code>
<code>EEE</code>
</Tags>
</MyTag>
答案 0 :(得分:0)
您需要:
var res = doc.Descendants("Tags")
.Where(p => p.Elements("code")
.Any(c => (string)c.Parent.Attribute("id") == "Val1"))
.Select(i => i.Elements("code")).ToArray().First();
或者这个:
var res = doc.Descendants("Tags")
.Where(p => p.Elements("code")
.Any(c => (string)c.Parent.Attribute("id") == "Val1"))
.Select(i => i.Elements("code").Select (x => (string)x.Value)).ToArray().First();
第一个会为您提供一系列元素,例如<code>AAAA</code>
,而第二个会为您提供一系列字符串,例如AAAA