0

我有 2 个数据表 fireCollarTable_ 和 electrofusionTable_。

        fireCollarTable_ = new System.Data.DataTable("Fire Collar");
        fireCollarTable_.Columns.Add("Article", typeof(string));
        fireCollarTable_.Columns.Add("Description", typeof(string));
        fireCollarTable_.Columns.Add("Diameter", typeof(double));

        electroFusionCouplerTable_ = new System.Data.DataTable("Electrofusion Coupler");
        electroFusionCouplerTable_.Columns.Add("Article", typeof(string));
        electroFusionCouplerTable_.Columns.Add("Description", typeof(string));
        electroFusionCouplerTable_.Columns.Add("Diameter", typeof(double));
        electroFusionCouplerTable_.Columns.Add("Length", typeof(double));    

上面定义了两个数据表,XML文件是

   <Catalogue>

     <!--  1-Item, 2-Article, 3-Description, 4-PipeType, 5-Diameter -->

     <Record a1="Fire Collar" a2="VS0410001" a3="Fire Collar, 40 mm" a5="40" />
     <Record a1="Fire Collar" a2="VS0410003" a3="Fire Collar, 50 mm" a5="50" />
     <Record a1="Fire Collar" a2="VS0410005" a3="Fire Collar, 56 mm" a5="56" />

     <!--  1-Item, 2-Article, 3-Description, 4-PipeType, 5-Diameter,9-Length-->

     <Record a1="Electrofusion Coupler" a2="VS0350001" a3="Electrofusion coupler, 40 mm"         a5="40" a9="64" />
     <Record a1="Electrofusion Coupler" a2="VS0350003" a3="Electrofusion coupler, 50 mm" a5="50" a9="60" />

   </Catalogue>

我想解析 XML 文件并根据属性“a1”的值,我想将数据插入数据表之一。例如,如果“a1”的值 = “Fire Collar”,那么数据应该插入到 firecollar 表中。

4

2 回答 2

1

您应该使用 XPath 在 C# 中解析 XML 文件。按照此链接“ http://support.microsoft.com/kb/308333 ”和“ http://www.codeproject.com/Articles/52079/Using-XPathNavigator-in-C# ”。我在这里给你一个例子:

  1. 使用 XmlDocument.Load("abc.xml"); 在 XmlDocument 中加载 xml 文件
  2. 使用 XmlDocument.SelecteNodes("//Records[@a=""]"); 查询

您可以使用参数搜索特定节点并将 XmlNode.Value 放置在需要放置的任何位置。

在谷歌上搜索这个你会得到准确的语法和流程。

于 2013-05-18T04:57:04.533 回答
0
XmlDocument xmlDocument = new XmlDocument();
        xmlDocument.Load(@"\XMLFile1.xml");

        XmlNodeList fireCollarNodeList = xmlDocument.SelectNodes("/Catalogue/Record[@a1='Fire Collar']");

        foreach (XmlNode fireCollarNode in fireCollarNodeList)
        {
            // add details to the fireCollarTable_
        }

        XmlNodeList electroFusionCouplerNodeList = xmlDocument.SelectNodes("/Catalogue/Record[@a1='Electrofusion Coupler']");

        foreach (XmlNode fireCollarNode in fireCollarNodeList)
        {
            // add details to the electroFusionCouplerTable_
        }
于 2013-05-18T05:02:53.587 回答