0%

C# 使用XmlTextReader读取xml文档

直接上代码吧:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Xml;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            XmlTextReader textReader = new XmlTextReader("http://www.pocketdigi.com/feed");

            FileStream fs = new FileStream("a.txt", FileMode.OpenOrCreate);
            StreamWriter write = new StreamWriter(fs,Encoding.UTF8);

            while (textReader.Read())
            {
                if (textReader.NodeType == XmlNodeType.Element)
                {
                    write.Write(textReader.Name);
                }
                else if ((textReader.NodeType == XmlNodeType.Text) || (textReader.NodeType == XmlNodeType.CDATA))
                {
                    write.Write(textReader.Value);
                }
            }
            /*
             *api文档中,Read()方法是从流中读取下一节点,可能是我对节点的理解有点问题,我一直以为应用开发笔记是一个节点
             *但在这方法中,这应该是三个节点,节点类型分别为Element,Text,EndElement,所以在这里卡了很久,一直找不到问题所在,直到输出节点类型才发现问题
             *另外,之所以不在控制台输出,还是写入文本,是因为xml文件太长,控制台直接不显示前面读取的内容,刚开始我还以为被跳过了.
             */
            write.Flush();
            write.Close();
        }
    }
}