我有以下XML结构:
<Root>
<Item ItemId="abc" ItemType="cde">
<Item2 ItemId="abc">
<Value>MyValue1</Val>
</Item2>
</Item>
<Item ItemId="abc" ItemType="cde">
<Item2 ItemId="abc">
<Value>MyValue1</Val>
<Item3 ItemId="abc">
<Value>MyValue2</Val>
</Item3>
</Item2>
</Item>
我想要做的是基本上检索该XML的信息(XML实际上更大,但它只包含那些类型的节点)。确切地说,我感兴趣的是从名为Value的节点中检索信息,但我想要做的是。
如果我这样做:
var topValue = xDoc.Descendants("Item2").Elements("Val").Select(val => val.Value).ToArray();
var nestedValue = xDoc.Descendants("Item3").Elements("Val").Select(val => val.Value ).ToArray();
然后,topValue的结果将有2个值,而nestedValue的结果将有1个值。我也想为nestedValue设置2个值(例如:{“empty”,“MyValue2”})所以一旦我遍历它们,它们就会匹配,Item2下的Value输出和Item3下的Value同步。
所需的输出如下:
topValue = {“MyValue1”,“MyValue1”} nestedValue = {“empty”,“MyValue2”}
或者有一种更好的方法可以使用Linq只用一个Linq查询来实现它?
知道该怎么做吗?
非常感谢提前。 Ĵ