如何在导入过程中处理格式错误的XML文件?

时间:2010-08-08 04:05:20

标签: c# xml .net-4.0

我刚刚完成了一个将相当简单的XML数据文件导入数据库的应用程序。该应用程序工作正常,但我想知道如何处理一个错误的XML文件。例如,用户选择的XML文件的布局与我的应用程序所需的布局不同。最后,我还想添加选择多个文件的功能,并且只是在遇到格式错误的文件时提醒用户而不是抛出异常。

有什么建议吗?

谢谢!

编辑:示例XML文件......

<export-database name="/data/data/dump.db">
<table name="gpsPoints">
    <row>
      <col name="_id">0</col> 
      <col name="latitude">0000000000</col> 
      <col name="longitude">0000000000</col> 
      <col name="rssi">-00</col> 
      <col name="logdate">00 000 00 00:00:00</col> 
      <col name="mcc">000</col> 
      <col name="mnc">000</col> 
      <col name="lac">00</col> 
      <col name="cellid">000</col> 
      <col name="site_lat">0</col> 
      <col name="site_lng">0</col> 
      <col name="tech">0000000000</col> 
      <col name="ber">-000</col> 
      <col name="callstate">0000000000/col> 
      <col name="roaming">0000000000</col> 
    </row>
</table>
</export-database>

2 个答案:

答案 0 :(得分:5)

这对我来说听起来像是一个简单的尝试抓住的东西......不是吗? 当结构不是问题时,事情往往变得复杂,但提供的数据在某种程度上是错误的,你需要能够“拒绝”特定的记录/节点,但这听起来不像你的情况。 知道读取XML的准确程度(即DOM,XML序列化,XML Linq)也是有用的。

答案 1 :(得分:2)

使用简单的try / catch,解析XML文件并检查它是否有效可能需要花费更多精力来编写,并且需要更长的时间来处理。

例如,如果您正在填充数据集,则代码将如下所示

try {
    DataSet ds = new DataSet();
    ds.LoadXml("myfile.xml");
}
catch { 
    ErrorLabel.Text = "Your XML isn't valid";
}