簡體   English   中英

c# xml文件包含重復節點被跳過並且不保存到DataSet中

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

您好,我正在嘗試讀取 XML 文件並將其保存到 DataSet 中,問題是重復節點被跳過而不是保存到 DataSet 中

下面是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");

嘗試以下:

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