Я новичок в LINQ
и пытаюсь получить значение <MM109>123456789</NM109>
из предоставленного файла XML
.Как я могу сделать это?Также ниже приведен некоторый синтаксис LINQ
, который, я думаю, находится на правильном пути.
<?xml version="1.0"?>
<Interchange>
<ISA>
</ISA>
<FunctionGroup>
<GS>
</GS>
<Transaction ControlNumber="12345">
<ST>
</ST>
<BHT>
</BHT>
<Loop LoopId="1000A" Name="SUBMITTER NAME">
<NM1>
</NM1>
<PER>
</PER>
</Loop>
<Loop LoopId="1000B" Name="RECEIVER NAME">
<NM1>
</NM1>
</Loop>
<HierarchicalLoop LoopId="2000A" LoopName="b p level" Id="1" ParentId="">
<HL>
</HL>
<PRV>
</PRV>
<Loop LoopId="2010AA" Name="p name">
<NM1>
<NM109>987654321</NM109>
</NM1>
<N3>
</N3>
<N4>
</N4>
<REF>
</REF>
<PER>
</PER>
</Loop>
</HierarchicalLoop>
<HierarchicalLoop LoopId="2000B" LoopName="SUBSCRIBER HIERARCHICAL LEVEL" Id="2" ParentId="1">
<HL>
</HL>
<SBR>
</SBR>
<Loop LoopId="2010BA" Name="UserName">
<NM1>
<NM109>123456789</NM109>
</NM1>
<N3>
</N3>
<N4>
</N4>
<DMG>
</DMG>
</Loop>
</HierarchicalLoop>
</Transaction>
</FunctionGroup>
</Interchange>
Если я напишу приведенный ниже код, я могу получить все значения NM109
, но все, что я хочу, это NM109
s вNM1
дочерний элемент Loop LoopId="2010BA" Name="UserName"
.Как я могу сделать это, используя LINQ
?
XElement element = XElement.Load(fileName);
IEnumerable<XElement> transactions = element.Elements();
foreach (XElement xEle in element.Descendants("NM109"))
{
Console.WriteLine(xEle);
}