我有一个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>
<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>
比如说我显示xml的文件 那么程序在执行的时候会报这么一个错。“XML 文档只能有一个顶层元素”用的仍旧是1楼的xml文件,代码是这样的: XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Path);
XmlNode xn = xmlDoc.SelectSingleNode("PSISIG_CUSTOM_DESCRIPTOR");
建议直接使用:XmlDocument,
“
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Path);
XmlNode xn = xmlDoc.SelectSingleNode("PSISIG_CUSTOM_DESCRIPTOR");”这个代码可以执行,没有错误!