-4
我从几个进程中获取机器生成的XML。它们的结构如下所示:用C解析XML#
<Data>
<Report>
<Machine name="hostA">
<MachineInfo location="LA">
<function name="run">Late</function>
<function name="status">Complete</function>
<function name="date">2015-06-14</function>
</MachineInfo>
<RepItem name="1488" direction="NS">
<Desc>None Found</Desc>
<Status Int="A12">Uplink</Status>
</RepItem>
<RepItem name="1489" direction="S">
<Desc>31Ghz Ant at 285ft.</Desc>
<Status Int="D5">Active</Status>
</RepItem>
<RepItem name="1438" direction="W">
<Desc>West N. Oc. Backup</Desc>
<Status Int="A11">Disabled</Status>
</RepItem>
<RepItem name="1141" direction="SE">
<Desc>MDT Co.</Desc>
<Status Int="B7">Active</Status>
</RepItem>
</Machine>
<Machine name="hostB">
<MachineInfo location="E. LA">
<function name="run">Late</function>
<function name="status">Complete</function>
<function name="date">2015-06-14</function>
</MachineInfo>
<RepItem name="1488" direction="NS">
<Desc>None Found</Desc>
<Status Int="A12">Down</Status>
</RepItem>
<RepItem name="1489" direction="S">
<Desc>31Ghz Ant at 285ft.</Desc>
<Status Int="D5">Active</Status>
</RepItem>
<RepItem name="1438" direction="W">
<Desc>West N. Oc. Backup</Desc>
<Status Int="A11">Disabled</Status>
</RepItem>
<RepItem name="1141" direction="SE">
<Desc>MDT Co.</Desc>
<Status Int="B7">Active</Status>
</RepItem>
</Machine>
</Report>
</data>
所以我用的XDocument和LINQ玩耍了,但我无法弄清楚如何处理重复元素。代码我扮演的最后一块看起来有点像这样:
XDocument report = XDocument.Load(filename);
foreach (XElement element in report
.Element("Machine")
.Elements("RepItem"))
{
所有我想做的是吸在XML和解析它,所以我可以将其加载到记录保存数据库,并通过存储报告程序。
您应该反序列化XML而不是手动解析它 – gaiazov