简体   繁体   English

c# xml文件包含重复节点被跳过并且不保存到DataSet中

[英]c# xml file contain Repeating nodes are skipped and not saved into DataSet

Hello i am trying to read and save an XML file into DataSet and the problem is the Repeating nodes are skipped and not saved into DataSet您好,我正在尝试读取 XML 文件并将其保存到 DataSet 中,问题是重复节点被跳过而不是保存到 DataSet 中

below is the xml:下面是xml:

<Production>
<Number>399195</Number>
<Code>21</Code>
<VehicleID>VR7A45GYVNL012461</VehicleID>
<ModelID>1CCE</ModelID>
<Date>2022-05-10T01:12:05.000Z</Date>
<ProductionSpecificationText>CDNB08 </ProductionSpecificationText>
<ProductionSpecificationText>CDPK02 </ProductionSpecificationText>
<ProductionSpecificationText>CDNM00 </ProductionSpecificationText>
<ProductionSpecificationText>CB0DSY </ProductionSpecificationText>
<ProductionSpecificationText>CDRL02 </ProductionSpecificationText>
<ProductionSpecificationText>CDL700 </ProductionSpecificationText>
<ProductionSpecificationText>CB0CCE </ProductionSpecificationText>
</Production>


DataSet dataSet = new DataSet();
    
dataSet.ReadXml(@"C:\Users\elhammh\Desktop\xmlfiletest");

Try following :尝试以下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.Data;


namespace ConsoleApplication23
{

    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Number", typeof(int));
            dt.Columns.Add("Code", typeof(int));
            dt.Columns.Add("VehicleID", typeof(string));
            dt.Columns.Add("ModelID", typeof(string));
            dt.Columns.Add("Date", typeof(DateTime));
            dt.Columns.Add("ProductionSpecificationText", typeof(string));

            XDocument doc = XDocument.Load(FILENAME);

            XElement production = doc.Root;

            int number = (int)production.Element("Number");
            int code = (int)production.Element("Code");
            string vehicleId = (string)production.Element("VehicleID");
            string modelId = (string)production.Element("ModelID");
            DateTime date = (DateTime)production.Element("Date");
            foreach (XElement text in production.Elements("ProductionSpecificationText"))
            {
                dt.Rows.Add(new object[] {
                    number,
                    code,
                    vehicleId,
                    modelId,
                    date,
                    (string)text
                });
            }

 

        }
    }
 
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM