C#中使用XmlReader读取XML数据

C#中使用XmlReader读取XML数据
C#中使用XmlReader读取XML数据

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Xml;

using System.IO;

namespace tryXmlreader

{

class Program

{

static void Main(string[] args)

{

//CreateByFile();

//CreateByFileStream();

//ReadElementContentAs();

ReadAttribute();

//Console.ReadLine();

}

public static void CreateByFile()

{

//创建XML读取器,读取XML文件

XmlReader reader = XmlReader.Create(@"e:\1.xml");

Console.WriteLine("All Text in books.xml:\n");

while (reader.Read())

{

if (reader.NodeType == XmlNodeType.Text)

{

Console.WriteLine(reader.Value);

}

}

reader.Close();

}

public static void CreateByFileStream()

{

FileStream fs = new FileStream(@"e:\1.xml", FileMode.Open);

//创建XML读取器,读取XML文件流

XmlReader reader = XmlReader.Create(fs);

Console.WriteLine("\nAll title in books.xml:\n");

//循环查找节点,直到最后一个节点

while (!reader.EOF)

{

if (reader.MoveToContent() == XmlNodeType.Element && https://www.360docs.net/doc/2f19061532.html, == "title")

{

//打印节点类型为Element,名称为title的节点值

DisplayElementString(reader);

}

else

{

reader.Read();

}

}

reader.Close();

fs.Close();

}

public static void DisplayElementString(XmlReader reader)

{ try

{

Console.WriteLine(reader.ReadElementString());

}

//捕捉不包含文本内容的元素抛出的异常

catch (XmlException e)

{

}

}

public static void ReadElementContentAs()

{

XmlReader reader = XmlReader.Create(@"e:\1.xml");

Console.WriteLine("\nAfter update price * 0.8:\n");

while (reader.Read())

{

if (reader.NodeType == XmlNodeType.Element)

{

if (https://www.360docs.net/doc/2f19061532.html, == "price")

{

//将price元素值读取为decimal类型

decimal price =

reader.ReadElementContentAsDecimal();

price = price * 0.8m;

Console.WriteLine("New Price = {0}", price);

}

else if (https://www.360docs.net/doc/2f19061532.html, == "title")

{

//将title元素值读取为string类型

Console.WriteLine(reader.ReadElementContentAsString());

}

}

}

reader.Close();

}

public static void ReadAttribute()

{

XmlReader reader = XmlReader.Create(@"e:\1.xml");

Console.WriteLine("\nAttribute:\n");

while (reader.Read())

{

if (reader.NodeType == XmlNodeType.Element)

{

for (int i = 0; i < reader.AttributeCount; i++)//迭代其所有属性

{

Console.WriteLine(reader.GetAttribute(i));

}

}

}

reader.Close();

}

}

}

相关主题
相关文档
最新文档