我有一个xml文档,内含有2个表NIT 和 BAT 其中每一个的下级都有一个名为 discriptors 的嵌套表,因为这两个表的表结构不一致,所以想把它解析到2个dataset中,如何直接使用 ConvertXMLFileToDataSet 那么会报错。请问如何写代码,我用的是C# VS2008环境。xml文件内容:<PSISIG_CUSTOM_DESCRIPTOR>
<BAT bouquet_id = "24677" >
<DESCRIPTORS>
</DESCRIPTORS>
<LOOP original_network_id = "7340" ts_id = "1017" >
<DESCRIPTORS>
<DESCRIPTOR name = "private_data_specifier_descriptor" data = "数据1" />
<DESCRIPTOR name = "user_define_descriptor" data = "数据2" />
</DESCRIPTORS>
</LOOP>
<LOOP original_network_id = "7340" ts_id = "101" >
<DESCRIPTORS>
<DESCRIPTOR name = "private_data_specifier_descriptor" data = "数据3" />
<DESCRIPTOR name = "user_define_descriptor" data = "数据4" />
</DESCRIPTORS>
</LOOP>
</BAT>
  
     <NIT network_id="7340">
           <DESCRIPTORS>
             <DESCRIPTOR name="user_define_descriptor" data="自定义描述1" />
           </DESCRIPTORS>
           <DESCRIPTORS>
             <DESCRIPTOR name="user_define_descriptor" data="自定义描述2" />
           </DESCRIPTORS>
              <LOOP ts_id = "254" original_network_id = "7340" service_id="2000">
           <DESCRIPTORS>
          </DESCRIPTORS>           
      </LOOP>
     </NIT>
</PSISIG_CUSTOM_DESCRIPTOR>

解决方案 »

  1.   

    http://www.cnblogs.com/yaweno/archive/2010/05/30/1747515.html
      

  2.   


    比如说我显示xml的文件  那么程序在执行的时候会报这么一个错。“XML 文档只能有一个顶层元素”用的仍旧是1楼的xml文件,代码是这样的:            XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(Path);
                XmlNode xn = xmlDoc.SelectSingleNode("PSISIG_CUSTOM_DESCRIPTOR");
      

  3.   

    这个xml的嵌套层次较多,用DataSet读取使用不方便,
    建议直接使用:XmlDocument,

                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(Path);
                XmlNode xn = xmlDoc.SelectSingleNode("PSISIG_CUSTOM_DESCRIPTOR");”这个代码可以执行,没有错误!