直接上代码吧:
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();
}
}
}