您现在的位置是:首页 >

wpf高级编程pdf C#高级编程:使用 XmlTextReader类[2]

火烧 2021-04-21 08:22:57 1045
C#高级编程:使用 XmlTextReader类[2] ——此文章摘自《C#高级编程(第 版)》定价 元 特价 元 购买 下面的示例说明了如何使用ReadEleme tStri g 这段代码在XmlR

C#高级编程:使用 XmlTextReader类[2]  

wpf高级编程pdf C#高级编程:使用 XmlTextReader类[2]
    ——此文章摘自《C#高级编程(第 版)》定价 元 特价 元 购买

    下面的示例说明了如何使用ReadElementString()(这段代码在XmlReaderSample 文件夹中) 注意这个示例使用FileStream 所以需要通过using语句来包括System IO命名空间     protected void button _Click (object sender System EventArgs e)     {        //use a filestream to get the data        FileStream fs = new FileStream( \ \ \books xml FileMode Open);        XmlTextReader tr = new XmlTextReader(fs);        while(!tr EOF)        {           //if we hit an element type try and load it in the listbox           if(tr MoveToContent() == XmlNodeType Element && tr FTEL== title )           {              listBox Items Add(tr ReadElementString());           }           else           {              //otherwise move on              tr Read();           }     }     }

    在while循环中 使用MoveToContent查找类型为XmlNodeType Element和名称为title的节点 我们使用XmlTextReader的EOF属性作为循环条件 如果节点的类型不是Element 或者名称不是title else子句就会调用Read()方法进入下一个节点 查找到一个满足条件的节点后 就把ReadElementString()的结果添加到列表框中 这样就在listbox中添加一个书名 注意 在成功执行了ReadElementString()后 不需要调用Read()方法 这是因为ReadElementString()已经查看了整个Element 然后定位到下一个节点上

    如果删除了if子句中的&& tr FTEL== title 在抛出XmlException异常时 就必须捕获它 如果查看一下数据文件 就会发现MoveToContent()查找到的第一个元素是<bookstore> 因为它是一个元素 所以把检查过程放在if语句中 但是 它不包含简单的文本类型 因此会让ReadElementString()引发一个XmlException异常 解决这个问题的一种方式是把ReadElementString()调用放在它自己的函数中 现在 如果在这个函数中ReadElementString()调用失败 就可以处理错误 返回给调用函数

    下面就调用这个新方法LoadList() 把XmltextReader作为参数 进行了这些修改后 该示例如下所示(这段代码在XmlReaderSample 文件夹中)     protected void button _Click (object sender System EventArgs e)     {        //use a filestream to get the data        FileStream fs = new FileStream( \ \ \books xml FileMode Open);        XmlTextReader tr = new XmlTextReader(fs);        while(!tr EOF)        {           //if we hit an element type try and load it in the listbox           if(tr MoveToContent() == XmlNodeType Element)           {              LoadList(tr);           }

lishixinzhi/Article/program/net/201311/15182  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码