将XmlDocument转换为对象列表

问题描述 投票:0回答:2

目前,我将XmlDocument转换为字符串列表,但这不是一个好的解决方案,因为如果我在ListBox中显示它,此命令将接收所有参数的内联字符串,并且只需要显示表,然后在选中时将其发送给Sql Server。 >

我无法创建具有属性的帮助器类,因为可以动态添加/删除参数。我不知道确切的参数将在文件中

这里是示例Xml

 <TechnologyTables>
<Tables>
<TA_ID>3102</TA_ID>
<TA_Name>AL000-01.50M-N2-S0</TA_Name>
<TA_MaterialID>1</TA_MaterialID>
<TA_ThicknessID>4</TA_ThicknessID>
<TA_IsActive>1</TA_IsActive>
<TA_ArchiveID>100</TA_ArchiveID>
<TA_IsArchive>0</TA_IsArchive>
<CL_IsActive>1</CL_IsActive>
<MP_Lens>200</MP_Lens>
<MP_Nozzle>4.0</MP_Nozzle>
<MP_Focal>-0.6</MP_Focal>
<MP_NozzleDist>1.5000000e+000</MP_NozzleDist>
<MP_GasStabilization>1</MP_GasStabilization>
<MP_SensitiveSensor>1</MP_SensitiveSensor>
<MP_SensitiveArea>2.5000000e+001</MP_SensitiveArea>
<GA_ID>1</GA_ID>
<GP_ID>0</GP_ID>
<GP_FlushOn>1</GP_FlushOn>
<GP_FlushTime>2000</GP_FlushTime>
<GP_FlushPressure>1.0000000e+001</GP_FlushPressure>
<GP_FeedbackOn>1</GP_FeedbackOn>
<GP_FeedbackTime>0</GP_FeedbackTime>
<GP_FeedbackPressure>1.0000000e-001</GP_FeedbackPressure>
<GP_MaxPressure>1.0000000e+001</GP_MaxPressure>
<GP_ContinueOn>0</GP_ContinueOn>
<GP_ContinueTime>0</GP_ContinueTime>
<TA_Jerk>100</TA_Jerk>
<TA_Acceleration>100</TA_Acceleration>
<TA_CuttingTechID>3</TA_CuttingTechID>
<TA_FlyCut>1</TA_FlyCut>
<TA_HeadID>1</TA_HeadID>
<TA_MachineID>3</TA_MachineID>
<TA_TypeID>1</TA_TypeID>
<TT_HeadPowerID>7</TT_HeadPowerID>
<TA_CreateDate>2019-08-26T17:10:59.810</TA_CreateDate>
<Description>AL1.5 CATLINE</Description>
<TA_HeadTypeID>2</TA_HeadTypeID>
<CatlineFolder>1</CatlineFolder>
<NozzleNameID>10</NozzleNameID>
<LaserTypeID>1</LaserTypeID>

导入文件时的某些代码

        private async void _ImportTechTables()
        {
        var open = new OpenFileDialog();
        var TableXml = new XmlDocument();
        open.Filter = "xml files |*.xml";
        if (open.ShowDialog() == DialogResult.OK)
        {
            TableXml.Load(open.FileName);
        }
        RSA rsaKey = GetKey();
        DecryptXML(TableXml, rsaKey, "XmlKey");

        if (TableXml != null)
        {
            var import = new TechnologyTableImportViewModel();
            List<string> xmlNodeLists = new List<string>();
            XmlNodeList node = TableXml.SelectNodes("TechnologyTables/Tables");
            foreach (XmlNode nodes in node)
            {
                xmlNodeLists.Add(nodes.InnerXml);
            }
            import.List = xmlNodeLists;

并且列表中的元素如下所示:3102AL000-01.50M-N2

目前,我将XmlDocument转换为字符串列表,但这不是一个好的解决方案,因为如果我将其显示在ListBox中,这将为我显示带有所有参数的内联字符串,并且只需要显示...

c# xml
2个回答
0
投票
您可以通过这种方式将字段保存到列表中,尽管我建议使用这种格式的字典。

0
投票
我喜欢使用字典,并使用xml linq创建字典:
© www.soinside.com 2019 - 2024. All rights reserved.