我的问题很简单:
这是我的xml数据:
<EnginsList>
<EnginsESC>
<NomValide>DRSC_6150</NomValide>
<NomEquivalents>
<NomEquivalent>DRSC 6150</NomEquivalent>
<NomEquivalent>DRSC6150</NomEquivalent>
<NomEquivalent>DRSC6.150</NomEquivalent>
<NomEquivalent>DRSC_6.150</NomEquivalent>
</NomEquivalents>
</EnginsESC>
<EnginsESC>
<NomValide>DRSC_6152</NomValide>
<NomEquivalents>
<NomEquivalent>DRSC 6152</NomEquivalent>
<NomEquivalent>DRSC6152</NomEquivalent>
<NomEquivalent>DRSC6.152</NomEquivalent>
<NomEquivalent>DRSC_6.152</NomEquivalent>
</NomEquivalents>
</EnginsESC>
</EnginsList>
通过lambda表达式,我想选择一个带有where子句的节点。
例如,我需要执行此查询:
SELECT <NomEquivalents><NomEquivalent> FROM <EnginsList> WHERE <NomValide> = DRSC_6150
我该怎么做?
提前致谢。
答案 0 :(得分:0)
您可以使用Linq to XML
var xmlDocument = XDocument.Load("path");
var nodes = xmlDocument.Descendants("EnginsESC")
.Where(x => (string)x.Element("NomValide") == "DRSC_6150")
.SelectMany(x => x.Element("NomEquivalents").Elements("NomEquivalent"))
.ToList();