C# 用C语言解析XML#

C# 用C语言解析XML#,c#,xml,C#,Xml,我从几个进程中获取机器生成的XML。它们的结构如下: <Data> <Report> <Machine name="hostA"> <MachineInfo location="LA"> <function name="run">Late</function> <function name="status">Complete</function>

我从几个进程中获取机器生成的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>

我所要做的就是吸入XML并对其进行解析,这样我就可以通过存储过程将其加载到数据库中进行记录保存和报告。

在本例中,XML被发送到xmlContent字符串变量,数据的根(重复的根)是Table。cust_id和cust_name是要在类Customer中使用相同的属性名称读取的XML标记

string xmlContent ="the xml content";           

XDocument doc = XDocument.Parse(xml);

                var data = from item in doc.Descendants("Table")
                           select new Customers
                           {
                               cust_id = XMLManager.TryGetElementValue(item, "cust_id"),
                               cust_name = XMLManager.TryGetElementValue(item, "cust_name"),

                           };

您应该反序列化XML,而不是手动解析它
string xmlContent ="the xml content";           

XDocument doc = XDocument.Parse(xml);

                var data = from item in doc.Descendants("Table")
                           select new Customers
                           {
                               cust_id = XMLManager.TryGetElementValue(item, "cust_id"),
                               cust_name = XMLManager.TryGetElementValue(item, "cust_name"),

                           };