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

C# 如何在导入过程中处理格式错误的XML文件?,c#,xml,.net-4.0,C#,Xml,.net 4.0,我刚刚完成了一个将相当简单的XML数据文件导入数据库的应用程序。该应用程序运行良好,但我想知道如何处理坏的XML文件。例如,用户选择的XML文件的布局与我的应用程序所需的不同。最后,我还想添加选择要导入的多个文件的功能,并希望在遇到格式错误的文件时提醒用户,而不是抛出异常 有什么建议吗 谢谢 编辑:示例XML文件 <export-database name="/data/data/dump.db"> <table name="gpsPoints"> <row

我刚刚完成了一个将相当简单的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>

0
0000000000
0000000000
-00 
00 000 00 00:00:00 
000
000
00
000
0
0
0000000000
-000 
0000000000/列>
0000000000

对我来说,这听起来像是一件简单的试一试的事情。。。不 如果结构不是问题所在,但提供的数据在某种程度上是错误的,并且您需要能够“拒绝”特定的记录/节点,那么事情确实会变得复杂,但这听起来不像您的情况。
另外,了解如何准确地读取XML(即DOM、XML序列化、XML Linq)也可能有些有用。

使用一个简单的try/catch,解析XML文件并检查其是否有效可能需要更多的编写工作和更长的处理时间

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

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

当然您可能希望的一件事是向用户提供更多的详细信息,说明您的错误是由格式错误的XML或其中的错误数据引起的。您捕获的异常应该包含关于前者的详细信息,由您来处理后者。