问题是这样:用一个dataset去读取一个xml之后,使用select去查找,明明xml中存在此条数据,可是查出来dr维数{0},接着就报索引越界异常,比如id=17就报异常,id=16就没问题,希望高手解决,立马结贴,100分相送,谢谢。
代码如下:
        DataSet ds = new DataSet();
        ds.ReadXml("c:\\b.xml");
        DataRow[] dr = ds.Tables["table"].Select("id=16");      //这里查出来的维数为{0}
        string a = dr[0].ItemArray[1].ToString();               //这里就报索引越界异常
        string b = dr[0].ItemArray[2].ToString();
        string c = " [" + dr[0].ItemArray[4].ToString() + "] ";xml文件如下:
<?xml version="1.0" standalone="yes"?>
<db>
  <table>
    <id>0</id>
    <subject>[快抢]邮箱积分最新活动,100%换奖,</subject>
    <body>这是一封HTML格式邮件,请切换到HTML视图</body>
    <date>2008-11-5</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>1</id>
    <subject>三无牌中国足球毒链条!谢亚龙原来只是“替</subject>
    <body>这是一封HTML格式邮件,请切换到HTML视图</body>
    <date>2008-9-24</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>2</id>
    <subject>招商银行Young卡-电子账单</subject>
    <date>2008-9-18</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>3</id>
    <subject>用"快易理财" 赢香港豪华游大奖!</subject>
    <date>2008-9-27</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>4</id>
    <subject>无</subject>
    <body xml:space="preserve"> 
 
 
 
</body>
    <date>2008-9-18</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>5</id>
    <subject>张庆玉邀请你加入同学网,并成为她的好友</subject>
    <body>寮犲簡鐜?涓ソ鍙嬶細鍥村Hi锛屾垜鏄紶搴嗙帀锛屽湪鍚屽缃戜笂寤虹珛浜嗕釜</body>
    <date>2008-11-11</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>6</id>
    <subject>[疾飞之捷论坛] 最新漫画、音乐下载列表</subject>
    <date>2008-11-7</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>7</id>
    <subject>招商银行Young卡消费明细</subject>
    <date>2008-11-6</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>8</id>
    <subject>秋季更要防腹泻</subject>
    <date>2008-9-21</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>9</id>
    <subject>(重要)请激活您的帐户(会员编号:323</subject>
    <body>尊敬的会员:
您的b激k活i码l已审核通过,于e系h统9时a间22008-10</body>
    <date>2008-9-21</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>10</id>
    <subject> Power Architecture </subject>
    <body>________________________________ 
P</body>
    <date>2008-9-24</date>
    <from>[email protected].</from>
    <to />
  </table>
  <table>
    <id>11</id>
    <subject>来自dell的问候!内附正版操作系统限时</subject>
    <body>  尊敬的戴尔用户: 您好 ! 之前您有购买过戴尔电脑,</body>
    <date>2008-9-18</date>
    <from>TingZ_Zhao@DellTeam.</from>
    <to />
  </table>
  <table>
    <id>12</id>
    <subject>Fw:???????é????????±</subject>
    <body>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML </body>
    <date>2008-9-23</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>13</id>
    <subject>来自[email protected]</subject>
    <body>我的163邮箱</body>
    <date>2008-9-23</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>14</id>
    <subject>招商银行Young卡-毕业转卡邀请</subject>
    <date>2008-11-1</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>15</id>
    <subject>小霍居 给你发了一条站内消息</subject>
    <body>小霍居
 &lt;http://fs12.woku.com//c/8/8106/81</body>
    <date>2008-9-19</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>16</id>
    <subject>(重要)请激活您的帐户2008-10-1</subject>
    <body>尊敬的会员您好:
    您的会员激活卡已经通过审核于系统时间2008-10-</body>
    <date>2008-9-18</date>
    <from>[email protected]</from>
    <to />
  </table>
  <table>
    <id>17</id>
    <subject>95555出行易――订特惠港澳酒店,赢时</subject>
    <date>2008-9-18</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>18</id>
    <subject>校内网 - 设置密码</subject>
    <date>0001-1-1</date>
    <from>commend+tx3rPe@xiaon</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>19</id>
    <subject>招商银行Young卡消费明细</subject>
    <date>2008-9-14</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>20</id>
    <subject>张庆玉邀请你加入同学网,并成为她的好友</subject>
    <body>寮犲簡鐜夊崥瀹細3绡嘓i锛屾垜鏄紶搴嗙帀锛屽湪鍚屽缃戜笂寤虹珛浜嗕釜浜轰富</body>
    <date>2008-9-18</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>21</id>
    <subject>来自[email protected]</subject>
    <body>%=±789◎『』」「○654 -*\#???$123●《》】【※)0(</body>
    <date>2008-9-26</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>22</id>
    <subject>来自[email protected]</subject>
    <body>??
</body>
    <date>2008-9-23</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>23</id>
    <subject>2008年中国国际信息通讯展览会(微软展</subject>
    <date>2008-9-15</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>24</id>
    <subject>更新你的简历,名企、猎头来找你!</subject>
    <date>2008-9-17</date>
    <from>11no-resume-relay@zh</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>25</id>
    <subject>招商银行Young卡消费明细</subject>
    <date>2008-9-5</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>26</id>
    <subject>ESales通知</subject>
    <date>2008-11-9</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>27</id>
    <subject>招商银行Young卡-毕业转卡功能升级新</subject>
    <date>2008-11-15</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>28</id>
    <subject>招商银行Young卡消费明细</subject>
    <date>2008-11-10</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>29</id>
    <subject>非常南通|每日精彩导读--讲述南通人自己</subject>
    <body>发帖送话费第三季火暴进行中--每天手机话费送出不限量!
———————</body>
    <date>2008-9-26</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>30</id>
    <subject>招商银行Young卡消费明细</subject>
    <date>2008-9-25</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>31</id>
    <subject>来自[email protected]</subject>
    <body>??z???
</body>
    <date>2008-9-23</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>32</id>
    <subject>招商银行Young卡消费明细</subject>
    <date>2008-11-3</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>33</id>
    <subject>我酷网</subject>
    <body>
亲爱的uissq
&lt;http://</body>
    <date>2008-9-7</date>
    <from>[email protected].</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>34</id>
    <subject>答复: 网通违法</subject>
    <body>您好!感谢您对我们的信任。我公司纪检监察部门,受理的是贪污受贿及其他违反</body>
    <date>0001-1-1</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  <table>
    <id>35</id>
    <subject>招商银行Young卡-电子账单</subject>
    <date>2008-9-18</date>
    <from>[email protected]</from>
    <to>[email protected]</to>
  </table>
  
</db>

解决方案 »

  1.   

     <id>29 </id> 
    你这XML不正规呀,29后面有空格呀,你去掉试试!!
      

  2.   

      DataRow[] dr = ds.Tables["table"].Select("id=16");      //这里查出来的维数为{0} 
    肯定为{0}
    多空格啦
      

  3.   

    关注,前几天写了一个简单的xml查找
      

  4.   

    先谢谢楼上的兄弟,这个xml是ds.WriteXml自己写入的,难道还每次WriteXml还需要手动清空格
      

  5.   

    嗯,发现你的<id></id>中都有空格,去掉再看看
      

  6.   

    谢谢lee576兄弟,在我这里的xml不存在id有空格的问题,可能是贴在html帖子中自动加上的空格。
      

  7.   

    你最好再检查一下,XML文件里出错的ID,用IE打开
      

  8.   

    DataRow[] dr = ds.Tables["table"].Select("id=16");      //这里查出来的维数为{0} 改成 DataRow[] dr = ds.Tables["table"].Select("id='16'"); 试一下