foreach (XmlNode xmlNode in xmlNodeList)
                {
                    DataRow dr = dt.NewRow();
                    foreach (Xml2DataTableMap map in maps) //这是什么?
                        dr[map.dataTableColumnsName] = Convert.ChangeType(xmlNode.SelectSingleNode(map.xmlNodeName).InnerText, map.dataTableColumnsType, null);  //还有这个
                    dt.Rows.Add(dr);
                }

解决方案 »

  1.   

    foreach (Xml2DataTableMap map in maps)这句话就是用Xml2DataTableMap创建一个map,然后在maps中遍历
    map.dataTableColumnsType这个就是说dataTableColumnsType是map的一个属性
      

  2.   


    我说的是全部解释下你只解释了map.dataTableColumnsType,这句之前的也要
      

  3.   

    ht.Add(map.dataTableColumnsName, Convert.ChangeType(xmlNode.SelectSingleNode(map.xmlNodeName).InnerText, map.dataTableColumnsType, null));
    ht就是你上面new的Hashtable,ht.Add就是在Hashtable里添加,(map.dataTableColumnsName, Convert.ChangeType(xmlNode.SelectSingleNode(map.xmlNodeName).InnerText, map.dataTableColumnsType, null)这些就是要添加的四个字段
    第一个字段:map.dataTableColumnsName,dataTableColumnsName为map的属性
    第二个字段:Convert.ChangeType(xmlNode.SelectSingleNode(map.xmlNodeName).InnerText,期中的Convert.ChangeType().InnerText就是把()的东西解析类型成InnerText的类型,xmlNodeName同意时map的一个属性,xmlNode.SelectSingleNode就是在XML文件中找到相应的节点。
    第三个字段:map.dataTableColumnsType中dataTableColumnsType同样是map的一个属性
    第四个字段:null表示为空
    你还发了两个贴啊,耐心点~
      

  4.   

    foreach (XmlNode xmlNode in xmlNodeList) //迭代节点列
      {
      DataRow dr = dt.NewRow();//创建新行
      foreach (Xml2DataTableMap map in maps) //maps是上面你创建的东西吧,迭代Xml2DataTableMap集合,取得map的实例
      dr[map.dataTableColumnsName] = Convert.ChangeType(xmlNode.SelectSingleNode(map.xmlNodeName).InnerText, map.dataTableColumnsType, null);
      dt.Rows.Add(dr);
      }ConvertChangeType看字面意思就知道了, 返回具有指定SystemType,而且其值等效于System.Object