怎么样读取下面的XML文件中的名称和标识递归插入到数据库中啊,
XML文件如下:
    <?xml version="1.0" encoding="GBK" ?> 
- <项目 名称="RACING-KID(莱斯凯特)" 标识="PRODUCTS-00052" 子对象数量="1" 创建人="Administrator(系统管理员)" 创建日期="2004-2-27 17:00:00" 修改人="Administrator(系统管理员)" 修改日期="2007-4-16 10:07:00">
- <产品数据>
  <产品结构树 /> 
- <研试文件>
  <方案报告 名称="aaa" 标识="FB-00002" 子对象数量="1" 批准日期="2004-8-6 13:43:00" 检出用户="" 检出版本号="" 单位="请选择" 单位代号="DW" 有效期起="2004-8-6 13:43:00" 有效期止="2004-8-6 13:43:00" 文件名="" 文件目录="" 文件类型="缺省值" 密级="请选择" 父版本="" 阶段="缺省值" 版本="" 状态="" 流程计数="" 页数="" 创建人="wangay(王安岳)" 创建日期="2004-8-6 13:43:00" 描述="" 基本代号="请选择" 修改人="wangay(王安岳)" 修改日期="2004-8-6 13:43:00" 产品标志="-2062548939" 产品版本标识="" 区分代号="请选择" 文件简号="FB" /> 
  </研试文件>
  <设计文件 /> 
  <见证性质量文件 /> 
  <工艺文件 /> 
  <三维模型 /> 
  </产品数据>
- <项目 名称="产品1" 标识="PRODUCTS-00080" 子对象数量="1" 创建人="Administrator(系统管理员)" 创建日期="2004-3-4 10:57:00" 修改人="Administrator(系统管理员)" 修改日期="2007-4-16 10:10:00">
- <产品数据>
- <产品结构树>
- <成套图样 名称="成套图样" 标识="CTTY-00010" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:43:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:43:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="">
- <二维图样 名称="反射器中部 多层隔热组件" 标识="ABC-XY-001-20" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="-2026897380_29_ABC-XY-001-20.dwg" 文件目录="" 文件类型="ACAD" 父版本="" 阶段="正样阶段(航天器)" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:42:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:43:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="">
  <二维图样 名称="反射器中部-X多层芯" 标识="ABC-XY-001-11" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="-2026897379_30_ABC-XY-001-11.dwg" 文件目录="" 文件类型="ACAD" 父版本="" 阶段="正样阶段(航天器)" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:42:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
  <二维图样 名称="反射器中部+X外表面膜" 标识="ABC-XY-001-22" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="-2026897378_31_ABC-XY-001-22.dwg" 文件目录="" 文件类型="ACAD" 父版本="" 阶段="正样阶段(航天器)" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:42:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:43:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
  <二维图样 名称="组件接地线" 标识="ABC-XY-001-130" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="-2026897377_32_ABC-XY-001-130.dwg" 文件目录="" 文件类型="ACAD" 父版本="" 阶段="正样阶段(航天器)" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:43:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
  <二维图样 名称="组件接地线" 标识="ABC-XY-001-140" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="-2026897376_33_ABC-XY-001-140.dwg" 文件目录="" 文件类型="ACAD" 父版本="" 阶段="正样阶段(航天器)" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:43:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:43:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
  <二维图样 名称="组件接地线" 标识="ABC-XY-001-110" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="-2026897375_34_ABC-XY-001-110.dwg" 文件目录="" 文件类型="ACAD" 父版本="" 阶段="正样阶段(航天器)" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:43:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
  <二维图样 名称="垫 片" 标识="ABC-XY-002-03" 子对象数量="2" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:43:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:43:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
  <二维图样 名称="接地铝箔条" 标识="ABC-XY-002-02" 子对象数量="2" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:43:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:43:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
  <二维图样 名称="空心铜铆钉" 标识="GB876-86" 子对象数量="2" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:43:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
  </二维图样>
  </成套图样>
  </产品结构树>

解决方案 »

  1.   

    - <研试文件>
      <方案报告 名称="测试报告" 标识="FB-00001" 子对象数量="1" 批准日期="2004-8-5 15:15:00" 检出用户="" 检出版本号="" 单位="请选择" 单位代号="DW" 有效期起="2004-8-5 15:15:00" 有效期止="2004-8-5 15:15:00" 文件名="-2053111805_3_FB-00001.doc" 文件目录="\\XUHUANCHAO\D:\hello" 文件类型="WORD" 密级="请选择" 父版本="" 阶段="缺省值" 版本="" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 15:15:00" 描述="" 基本代号="AA" 修改人="Administrator(系统管理员)" 修改日期="2007-4-16 10:18:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="FB" /> 
      <方案报告 名称="qqq" 标识="DWAA/FB0001HT" 子对象数量="1" 批准日期="2007-3-28 13:39:00" 检出用户="" 检出版本号="0" 单位="请选择" 单位代号="DW" 有效期起="" 有效期止="" 文件名="-2053111799_13_研试文件格式(A4)通用模板.doc" 文件目录="" 文件类型="WORD" 密级="请选择" 父版本="a_EC1" 阶段="" 版本="a" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2007-3-28 13:30:00" 描述="" 基本代号="AA" 修改人="Administrator(系统管理员)" 修改日期="2007-3-28 13:39:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="FB" /> 
      <方案报告 名称="qqq" 标识="DWAA/FB0001HT" 子对象数量="1" 批准日期="2007-3-28 13:37:00" 检出用户="" 检出版本号="16" 单位="请选择" 单位代号="DW" 有效期起="2007-3-28 13:30:00" 有效期止="2007-3-28 13:30:00" 文件名="-2053111799_12_研试文件格式(A4)通用模板.doc" 文件目录="" 文件类型="WORD" 密级="请选择" 父版本="a.0" 阶段="" 版本="a_EC1" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2007-3-28 13:30:00" 描述="" 基本代号="AA" 修改人="Administrator(系统管理员)" 修改日期="2007-3-28 13:31:00" 产品标志="-2062548910" 产品版本标识="0" 区分代号="请选择" 文件简号="FB" /> 
      <方案报告 名称="测试文档" 标识="DWBB/FB0002HT" 子对象数量="1" 批准日期="2007-3-28 15:08:00" 检出用户="" 检出版本号="0" 单位="请选择" 单位代号="DW" 有效期起="2007-3-28 14:45:00" 有效期止="2007-3-28 14:45:00" 文件名="-2053111798_15_研试文件格式(A4)通用模板.doc" 文件目录="" 文件类型="WORD" 密级="请选择" 父版本="a.0" 阶段="初样阶段" 版本="a" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2007-3-28 14:48:00" 描述="" 基本代号="BB" 修改人="Administrator(系统管理员)" 修改日期="2007-3-28 14:51:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="FB" /> 
      <调研报告 名称="方案报告" 标识="DWBB/DB0001HT" 子对象数量="1" 批准日期="2007-4-15 21:07:00" 检出用户="" 检出版本号="" 单位="请选择" 单位代号="" 有效期起="2007-4-15 21:07:00" 有效期止="2007-4-15 21:07:00" 文件名="" 文件目录="" 文件类型="缺省值" 密级="请选择" 父版本="" 阶段="缺省值" 版本="" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2007-4-15 21:08:00" 描述="" 基本代号="BB" 修改人="Administrator(系统管理员)" 修改日期="2007-4-16 10:18:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="DB" /> 
      </研试文件>
    - <设计文件>
      <产品明细表 名称="技术要求" 标识="CPMX-00001" 子对象数量="1" 批准日期="2004-8-5 15:18:00" 检出用户="" 检出版本号="0" 产品代号="" 第几页="" 有效期起="2004-8-5 15:18:00" 有效期止="2004-8-5 15:18:00" 文件名="-1999634431_2_产品明细表.doc" 文件目录="" 文件类型="WORD" 父版本="a.0" 阶段="初样阶段" 版本="a.1" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 15:19:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 15:20:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="MX" /> 
      </设计文件>
      <见证性质量文件 /> 
    - <工艺文件>
      <工艺文件 名称="THCAPP机加工艺" 标识="GYWJ-00001" 子对象数量="1" 批准日期="2004-8-6 11:12:00" 检出用户="" 检出版本号="" 有效期起="2004-8-6 11:12:00" 有效期止="2004-8-6 11:12:00" 文件名="-1959788543_1_套块.pxf" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 状态="" 流程计数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-6 11:13:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2007-3-28 11:29:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <工艺文件 名称="THCAPP机加工艺" 标识="GYWJ-00002" 子对象数量="1" 批准日期="2004-8-6 11:14:00" 检出用户="" 检出版本号="" 有效期起="2004-8-6 11:14:00" 有效期止="2004-8-6 11:14:00" 文件名="-1959788542_2_预埋热管.pxf" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 状态="" 流程计数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-6 11:14:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2007-3-28 11:29:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <工艺文件 名称="KMCAPP工艺文件" 标识="GYWJ-00004" 子对象数量="1" 批准日期="2007-3-28 11:06:00" 检出用户="" 检出版本号="" 有效期起="2007-3-28 11:06:00" 有效期止="2007-3-28 11:06:00" 文件名="-1959788540_4_蒙皮2dk7110-31(32).gxk" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 状态="" 流程计数="" 创建人="Administrator(系统管理员)" 创建日期="2007-3-28 11:06:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2007-3-28 11:06:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <工艺文件 名称="KMCAPP工艺文件" 标识="GYWJ-00005" 子对象数量="1" 批准日期="2007-3-28 11:29:00" 检出用户="" 检出版本号="" 有效期起="2007-3-28 11:29:00" 有效期止="2007-3-28 11:29:00" 文件名="-1959788539_5_2DKA6000-70.gxk" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 状态="" 流程计数="" 创建人="Administrator(系统管理员)" 创建日期="2007-3-28 11:30:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2007-3-28 11:30:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      </工艺文件>
    - <三维模型>
      <三维模型 名称="SOLIDWORKS模型" 标识="THMODEL-00001" 子对象数量="1" 批准日期="2007-3-28 10:06:00" 检出用户="" 检出版本号="" 有效期起="2007-3-28 10:06:00" 有效期止="2007-3-28 10:06:00" 文件名="-1785724927_1_30-01.SLDPRT" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 状态="" 流程计数="" 创建人="Administrator(系统管理员)" 创建日期="2007-3-28 10:06:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2007-3-28 10:07:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <三维模型 名称="CATIA模型" 标识="THMODEL-00002" 子对象数量="1" 批准日期="2007-3-28 10:59:00" 检出用户="" 检出版本号="" 有效期起="2007-3-28 10:59:00" 有效期止="2007-3-28 10:59:00" 文件名="-1785724926_2_CKD-CLY-A-40.CATPart" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 状态="" 流程计数="" 创建人="Administrator(系统管理员)" 创建日期="2007-3-28 11:00:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2007-3-28 11:00:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <三维模型 名称="UG模型" 标识="THMODEL-00003" 子对象数量="1" 批准日期="2007-3-28 11:03:00" 检出用户="" 检出版本号="" 有效期起="2007-3-28 11:03:00" 有效期止="2007-3-28 11:03:00" 文件名="-1785724925_3_arm.prt" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 状态="" 流程计数="" 创建人="Administrator(系统管理员)" 创建日期="2007-3-28 11:03:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2007-3-28 11:03:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <三维模型 名称="PROE模型" 标识="THMODEL-00004" 子对象数量="1" 批准日期="2007-3-28 11:03:00" 检出用户="" 检出版本号="" 有效期起="2007-3-28 11:03:00" 有效期止="2007-3-28 11:03:00" 文件名="-1785724924_4_prt0011.prt.6" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 状态="" 流程计数="" 创建人="Administrator(系统管理员)" 创建日期="2007-3-28 11:04:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2007-3-28 11:05:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      </三维模型>
      </产品数据>
      </项目>
      

  2.   

    - <项目 名称="产品2" 标识="PRODUCTS-00081" 子对象数量="1" 创建人="Administrator(系统管理员)" 创建日期="2004-3-4 10:58:00" 修改人="Administrator(系统管理员)" 修改日期="2007-4-16 10:10:00">
    - <产品数据>
    - <产品结构树>
    - <成套图样 名称="成套图样" 标识="CTTY-00011" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:44:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548909" 产品版本标识="" 区分代号="请选择" 文件简号="">
    - <二维图样 名称="反射器中部多层隔热组件" 标识="ABC-XY-001-10" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="-2026897371_38_ABC-XY-001-10.dwg" 文件目录="" 文件类型="ACAD" 父版本="" 阶段="正样阶段(航天器)" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:44:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548909" 产品版本标识="" 区分代号="请选择" 文件简号="">
      <二维图样 名称="反射器中部-X多层芯" 标识="ABC-XY-001-11" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="-2026897379_30_ABC-XY-001-11.dwg" 文件目录="" 文件类型="ACAD" 父版本="" 阶段="正样阶段(航天器)" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:42:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <二维图样 名称="组件接地线" 标识="ABC-XY-001-130" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="-2026897377_32_ABC-XY-001-130.dwg" 文件目录="" 文件类型="ACAD" 父版本="" 阶段="正样阶段(航天器)" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:43:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <二维图样 名称="组件接地线" 标识="ABC-XY-001-110" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="-2026897375_34_ABC-XY-001-110.dwg" 文件目录="" 文件类型="ACAD" 父版本="" 阶段="正样阶段(航天器)" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:43:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <二维图样 名称="空心铜铆钉" 标识="GB876-86" 子对象数量="2" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:43:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548910" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <二维图样 名称="组件接地线" 标识="ABC-XY-001-120" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="-2026897370_39_ABC-XY-001-120.dwg" 文件目录="" 文件类型="ACAD" 父版本="" 阶段="正样阶段(航天器)" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:44:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548909" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <二维图样 名称="反射器中部-X外表面膜" 标识="ABC-XY-001-12" 子对象数量="1" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:44:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548909" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <二维图样 名称="垫 片" 标识="ABC-XY-001-03" 子对象数量="2" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:44:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548909" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      <二维图样 名称="接地铝箔条" 标识="ABC-XY-001-02" 子对象数量="2" 批准日期="" 检出用户="" 检出版本号="" 产品代号="" 第几页="" 有效期起="" 有效期止="" 文件名="" 文件目录="" 文件类型="缺省值" 父版本="" 阶段="缺省值" 版本="" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2004-8-5 13:44:00" 描述="" 基本代号="请选择" 修改人="Administrator(系统管理员)" 修改日期="2004-8-5 13:44:00" 产品标志="-2062548909" 产品版本标识="" 区分代号="请选择" 文件简号="" /> 
      </二维图样>
      <二维图样 名称="演示用文件" 标识="GAE1-0FB-0001" 子对象数量="1" 批准日期="2007-4-15 21:28:00" 检出用户="" 检出版本号="0" 产品代号="" 第几页="" 有效期起="2007-4-15 21:08:00" 有效期止="2007-4-15 21:08:00" 文件名="-2026897365_45_A4-0.DWG" 文件目录="" 文件类型="ACAD" 父版本="a.0" 阶段="方案阶段" 版本="a" 密级="请选择" 状态="" 流程计数="" 页数="" 创建人="Administrator(系统管理员)" 创建日期="2007-4-15 21:09:00" 描述="" 基本代号="AA" 修改人="Administrator(系统管理员)" 修改日期="2007-4-15 21:19:00" 产品标志="" 产品版本标识="" 区分代号="型号1" 文件简号="" /> 
      </成套图样>
      </产品结构树>
      <研试文件 /> 
      <设计文件 /> 
      <见证性质量文件 /> 
      <工艺文件 /> 
      <三维模型 /> 
      </产品数据>
      </项目>
      

  3.   

    我用FOR循环做了以下代码,不知道是否正确,谁能用递归的方法实现我要实现的功能啊.我的代码如下:
       string PartID3="";
    string Sql="";
    string filename=Application.StartupPath+"\\dbconn.config";
    XmlDocument xmldoc  = new XmlDocument();
    xmldoc.Load(filename);
    //XmlNodeList topM = xmldoc.DocumentElement.ChildNodes;
    XmlNode node=xmldoc.SelectSingleNode("/configuration/FPlantFid");
    string FPlantFid=node.InnerText;


    DBConnect connect=new DBConnect();
    XmlDocument xdoc=new XmlDocument();
    xdoc.Load(@"c:\Avidm对象导出.xml");
    XmlElement xe_Productstruc=xdoc.DocumentElement; //标识
    string xn_ProductID=Guid.NewGuid().ToString(); //名称
    string xn_ProductCodeID=xe_Productstruc.Attributes["名称"].InnerText+"("+xe_Productstruc.Attributes["标识"].InnerText+")"; //Sql="insert into dnc_productstruc(fid,fname,fparentfid,fpath,fplantfid) values('"+xn_ProductID+"','"+xn_ProductCodeID+"','0','"+xn_ProductCodeID+"','"+FPlantFid+"')";
    Sql="insert into dnc_productstruc(fid,fname,fparentfid,fpath,fplantfid) values('"+xn_ProductID+"','"+xn_ProductCodeID+"','0','-','"+FPlantFid+"')";
    connect.ExecCmd(Sql); //提取文档中各子结点的信息,然后插入到数据库中
    for(int i=0;i<xe_Productstruc.ChildNodes.Count;i++)
    {
    XmlNode xn_Part=xe_Productstruc.ChildNodes[i];
    //标识
    //string PartID=xn_Part.Attributes["标识"].InnerText;
    string PartID=Guid.NewGuid().ToString();
    //名称
    string PartCodeID=xn_Part.Attributes["名称"].InnerText+"("+xn_Part.Attributes["标识"].InnerText+")";
    //Sql="insert into dnc_productstruc(fid,fname,fparentfid,fpath,fplantfid) values('"+PartID+"','"+PartCodeID+"','"+xn_ProductID+"','"+xn_ProductCodeID+"/"+PartCodeID+"'','"+FPlantFid+"')";
    Sql="insert into dnc_productstruc(fid,fname,fparentfid,fpath,fplantfid) values('"+PartID+"','"+PartCodeID+"','"+xn_ProductID+"','-','"+FPlantFid+"')";

    connect.ExecCmd(Sql); for(int j=0;j<xn_Part.ChildNodes.Count;j++)

                       XmlNode xn_Part1=xn_Part.ChildNodes[j];
    for( int k=0;k<xn_Part1.ChildNodes.Count;k++)
    {
    XmlNode xn_Part2=xn_Part1.ChildNodes[k];//4
    for(int l=0;l<xn_Part2.ChildNodes.Count;l++)
    {
    XmlNode xn_Part3=xn_Part2.ChildNodes[l];
    //标识
    //string PartID1=xn_Part3.Attributes["标识"].InnerText;
                                string PartID1=Guid.NewGuid().ToString();
    //名称
    string PartCodeID1=xn_Part3.Attributes["名称"].InnerText+"("+xn_Part3.Attributes["标识"].InnerText+")";
    //Sql="insert into dnc_productstruc(fid,fname,fparentfid,fpath,fplantfid) values('"+PartID1+"','"+PartCodeID1+"','"+PartID+"','"+xn_ProductCodeID+"/"+PartCodeID+"/"+PartCodeID1+"','"+FPlantFid+"')";
    Sql="insert into dnc_productstruc(fid,fname,fparentfid,fpath,fplantfid) values('"+PartID1+"','"+PartCodeID1+"','"+PartID+"','-','"+FPlantFid+"')";

    connect.ExecCmd(Sql);
    for(int m=0;m<xn_Part3.ChildNodes.Count;m++)
    { XmlNode xn_Part4=xn_Part3.ChildNodes[m];
    //string PartID2=xn_Part4.Attributes["标识"].InnerText;
    string PartID2=Guid.NewGuid().ToString();
    //名称
    string PartCodeID2=xn_Part4.Attributes["名称"].InnerText+"("+xn_Part4.Attributes["标识"].InnerText+")";
    //Sql="insert into dnc_productstruc(fid,fname,fparentfid,fpath,fplantfid) values('"+PartID2+"','"+PartCodeID2+"','"+PartID1+"','"+xn_ProductCodeID+"/"+PartCodeID+"/"+PartCodeID1+"/"+PartCodeID2+"','"+FPlantFid+"')";
    Sql="insert into dnc_productstruc(fid,fname,fparentfid,fpath,fplantfid) values('"+PartID2+"','"+PartCodeID2+"','"+PartID1+"','-','"+FPlantFid+"')";

    connect.ExecCmd(Sql);
    for(int n=0;n<xn_Part4.ChildNodes.Count;n++)
    {
    XmlNode xn_Part5=xn_Part4.ChildNodes[n];
    //  string sPartID3=xn_Part5.Attributes["标识"].InnerText;
    // PartID3=PartID3+"+"+sPartID3;
    PartID3=Guid.NewGuid().ToString();
    //名称
    string PartCodeID3=xn_Part5.Attributes["名称"].InnerText+"("+xn_Part5.Attributes["标识"].InnerText+")";
    //Sql="insert into dnc_productstruc(fid,fname,fparentfid,fpath,fplantfid) values('"+PartID3+"','"+PartCodeID3+"','"+PartID2+"','"+xn_ProductCodeID+"/"+PartCodeID+"/"+PartCodeID1+"/"+PartCodeID2+"/"+PartCodeID3+"','"+FPlantFid+"')";
    Sql="insert into dnc_productstruc(fid,fname,fparentfid,fpath,fplantfid) values('"+PartID3+"','"+PartCodeID3+"','"+PartID2+"','-','"+FPlantFid+"')";

    connect.ExecCmd(Sql);
         } } }
    }
    }
    }
      

  4.   

    给你个参考程序,根据attribute来选取节点的
    class Program
        {
            static void Main(string[] args)
            {            XmlDocument doc = new XmlDocument();
                doc.Load("D:/aaa.xml");
                SelectNodesByAttribute(doc.ChildNodes[1]);//root node
            }        static List<XmlNode> list = new List<XmlNode>();        private static XmlNode SelectNodesByAttribute(XmlNode node)
            {
                if (node == null)
                    return null;
                if (node.Attributes != null
                    && node.Attributes["id"] != null
                    && node.Attributes["id"].Value == "2")
                {
                    list.Add(node);
                }
                if (node.HasChildNodes)
                {
                    return SelectNodesByAttribute(node.FirstChild);
                }
                else
                {
                    if (node.NextSibling != null)
                    {
                        node = node.NextSibling;
                    }
                    else
                    {
                        while (node.ParentNode != null && node.NextSibling == null)
                        {
                            node = node.ParentNode;
                        }
                        node = node.NextSibling;
                    }
                    return SelectNodesByAttribute(node);
                }        }
        }