【发布时间】:2018-10-26 14:45:17
【问题描述】:
我是LINQ 的新手,我正在尝试从提供的XML 文件中获取<MM109>123456789</NM109> 的值。我怎样才能做到这一点?下面还有一些我认为正确的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 值,但我想要的只是NM1 元素的NM1 子元素中的NM109s。如何使用LINQ 完成此操作?
XElement element = XElement.Load(fileName);
IEnumerable<XElement> transactions = element.Elements();
foreach (XElement xEle in element.Descendants("NM109"))
{
Console.WriteLine(xEle);
}
【问题讨论】:
标签: c# xml linq-to-xml