C#中创建与读取XML数据(一)
来源:互联网 发布:淘宝店激活实名认证 编辑:程序博客网 时间:2024/06/05 03:55
C#中创建与读取XML数据(一)
--------------创建通过C#创建XML
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml;
using System.Data.SqlClient;
namespace xmlDemo
...{
/**//**************************************************************
* 文件名: Program.cs
* 作者: 周伟 (2007/10/24)
* 功能描述: 通过各种方式实现XML数据的各种操作
* ***********************************************************/
class Program
...{
static void Main(string[] args)
...{
createXml();
}
public static void createXml()
...{
//通过各种方式创建数据信息到XML文件
Console.WriteLine("-----------------------------------");
Console.WriteLine("1:通过字符串加载到XML对象并创建文件");
Console.WriteLine("-----------------------------------");
Console.WriteLine("2:通过添加结点信息构造XML对象到文件");
Console.WriteLine("-----------------------------------");
Console.WriteLine("3:通过从数据库中获取数据构造XML对象");
Console.WriteLine("-----------------------------------");
Console.Write("请选择XML操作方式(输入exit退出):");
String input = Console.ReadLine();
while (input != "exit")
...{
switch (input)
...{
case "1":
...{ //第一种方式:通过字符串构造XML对象
XmlDocument doc1 = new XmlDocument();
doc1.LoadXml("<song type='Pop'>" +
"<name>光辉岁月</name>" +
"<singer>BEYOND</singer>" +
"</song>");
doc1.Save(@"data1.xml");
Console.WriteLine("字符串生成XML文件成功!");
break;
}
case "2":
...{ //第二种方式:通过添加结点信息构造XML对象
XmlDocument xd = new XmlDocument();
XmlElement root = xd.CreateElement("MovieList");
XmlElement node = xd.CreateElement("Movie");
node.SetAttribute("type", "American");
XmlElement node1 = xd.CreateElement("name");
XmlText xmltext = xd.CreateTextNode("Legends of falls");
node1.AppendChild(xmltext);
node.AppendChild(node1);
root.AppendChild(node);
XmlElement node2 = xd.CreateElement("Actor");
XmlText xmltext2 = xd.CreateTextNode("Brad Pitt");
node2.AppendChild(xmltext2);
node.AppendChild(node2);
root.AppendChild(node);
xd.AppendChild(root);
xd.Save(@"data2.xml");
Console.WriteLine("通过结点信息创建XML文件成功!");
break;
}
case "3":
...{
//通过从数据库中读取数据到XML文件
try
...{
XmlDocument xd = new XmlDocument();
XmlElement root = xd.CreateElement("AuthorList");
SqlConnection con = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=;");
String qry = "select * from authors";
con.Open();
SqlCommand cmd = new SqlCommand(qry, con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
...{
XmlElement node = xd.CreateElement("author");
for (int i = 0; i < dr.FieldCount; i++)
...{
XmlText xt = xd.CreateTextNode(dr[i].ToString());
XmlElement node1 = xd.CreateElement(dr.GetName(i));
node1.AppendChild(xt);
node.AppendChild(node1);
}
root.AppendChild(node);
}
xd.AppendChild(root);
xd.Save(@"data3.xml");
Console.WriteLine("通过读取数据库创建XML文件成功!");
con.Close();
}
catch (Exception ex)
...{
Console.Write("读取数据库错误,{0}", ex.ToString());
}
break;
}
default:
break;
}
Console.WriteLine("-----------------------------------");
Console.Write("请选择XML操作方式(输入exit退出):");
input = Console.ReadLine();
}
}
}
}
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml;
using System.Data.SqlClient;
namespace xmlDemo
...{
/**//**************************************************************
* 文件名: Program.cs
* 作者: 周伟 (2007/10/24)
* 功能描述: 通过各种方式实现XML数据的各种操作
* ***********************************************************/
class Program
...{
static void Main(string[] args)
...{
createXml();
}
public static void createXml()
...{
//通过各种方式创建数据信息到XML文件
Console.WriteLine("-----------------------------------");
Console.WriteLine("1:通过字符串加载到XML对象并创建文件");
Console.WriteLine("-----------------------------------");
Console.WriteLine("2:通过添加结点信息构造XML对象到文件");
Console.WriteLine("-----------------------------------");
Console.WriteLine("3:通过从数据库中获取数据构造XML对象");
Console.WriteLine("-----------------------------------");
Console.Write("请选择XML操作方式(输入exit退出):");
String input = Console.ReadLine();
while (input != "exit")
...{
switch (input)
...{
case "1":
...{ //第一种方式:通过字符串构造XML对象
XmlDocument doc1 = new XmlDocument();
doc1.LoadXml("<song type='Pop'>" +
"<name>光辉岁月</name>" +
"<singer>BEYOND</singer>" +
"</song>");
doc1.Save(@"data1.xml");
Console.WriteLine("字符串生成XML文件成功!");
break;
}
case "2":
...{ //第二种方式:通过添加结点信息构造XML对象
XmlDocument xd = new XmlDocument();
XmlElement root = xd.CreateElement("MovieList");
XmlElement node = xd.CreateElement("Movie");
node.SetAttribute("type", "American");
XmlElement node1 = xd.CreateElement("name");
XmlText xmltext = xd.CreateTextNode("Legends of falls");
node1.AppendChild(xmltext);
node.AppendChild(node1);
root.AppendChild(node);
XmlElement node2 = xd.CreateElement("Actor");
XmlText xmltext2 = xd.CreateTextNode("Brad Pitt");
node2.AppendChild(xmltext2);
node.AppendChild(node2);
root.AppendChild(node);
xd.AppendChild(root);
xd.Save(@"data2.xml");
Console.WriteLine("通过结点信息创建XML文件成功!");
break;
}
case "3":
...{
//通过从数据库中读取数据到XML文件
try
...{
XmlDocument xd = new XmlDocument();
XmlElement root = xd.CreateElement("AuthorList");
SqlConnection con = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=;");
String qry = "select * from authors";
con.Open();
SqlCommand cmd = new SqlCommand(qry, con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
...{
XmlElement node = xd.CreateElement("author");
for (int i = 0; i < dr.FieldCount; i++)
...{
XmlText xt = xd.CreateTextNode(dr[i].ToString());
XmlElement node1 = xd.CreateElement(dr.GetName(i));
node1.AppendChild(xt);
node.AppendChild(node1);
}
root.AppendChild(node);
}
xd.AppendChild(root);
xd.Save(@"data3.xml");
Console.WriteLine("通过读取数据库创建XML文件成功!");
con.Close();
}
catch (Exception ex)
...{
Console.Write("读取数据库错误,{0}", ex.ToString());
}
break;
}
default:
break;
}
Console.WriteLine("-----------------------------------");
Console.Write("请选择XML操作方式(输入exit退出):");
input = Console.ReadLine();
}
}
}
}
补充一种用序列化生成XML文件的方法:
public static void Serialize()
...{
//注意,Movies是一个带6个属性的类,这里没列出代码,用户可自己设计
Movies[] films = new Movies[]
...{
new Movies(5,"Citizen Kane","Orson Welles","Y",1941,1,"RKO"),
new Movies(6,"Casablanca","Michael Curtiz","Y",1942,2,"Warner Bros.")
};
XmlRootAttribute xRoot = new XmlRootAttribute();
xRoot.ElementName = "films";
xRoot.Namespace = "XML.movies";
xRoot.IsNullable = true;
XmlSerializer xSerial = new XmlSerializer(typeof(Movies[]), xRoot);
//不用@?
string fileName = @"E:XMLoscarwinners.xml";
TextWriter writer = new StreamWriter(fileName);
xSerial.Serialize(writer, films);
}
...{
//注意,Movies是一个带6个属性的类,这里没列出代码,用户可自己设计
Movies[] films = new Movies[]
...{
new Movies(5,"Citizen Kane","Orson Welles","Y",1941,1,"RKO"),
new Movies(6,"Casablanca","Michael Curtiz","Y",1942,2,"Warner Bros.")
};
XmlRootAttribute xRoot = new XmlRootAttribute();
xRoot.ElementName = "films";
xRoot.Namespace = "XML.movies";
xRoot.IsNullable = true;
XmlSerializer xSerial = new XmlSerializer(typeof(Movies[]), xRoot);
//不用@?
string fileName = @"E:XMLoscarwinners.xml";
TextWriter writer = new StreamWriter(fileName);
xSerial.Serialize(writer, films);
}
- C#中创建与读取XML数据(一)
- C#中创建与读取XML数据(二)
- XML数据读取与创建
- C#中创建和读取XML文件
- C#创建读取XML
- C#读取XML数据
- C#来创建和读取XML文档(一)
- 在C#中创建和读取XML文件
- 在C#中创建和读取XML文件
- 在C#中创建和读取XML文件
- 在C#中创建和读取XML文件
- 在C#中创建和读取XML文件
- 在Android中操作XML数据-读取与解析XML数据/生成与输出XML数据
- C#读取xml节点数据
- C#读取XML流数据
- 从XML中读取数据!(Asp.net 学习一)
- java 中 用xml 对excel的读取,与创建
- xml文档创建与读取
- 推荐一个免费体验Linux/Solaris系统的网站:Unxi体验中心 http://www.unix-center.net/
- C# 连接winform过一段时间出现,unspecify error 问题
- Database
- 有关JAVA 显示SQL 查询结果的显示
- Some useful linux commands
- C#中创建与读取XML数据(一)
- 金融风暴
- response.setHeader详解
- 让C++和Python使用同一个枚举
- JSP/Servlet的重定向技术
- xmlHTTP xmlDOC 与 C#中DataSet的结合 实现AJAX简单示例
- FreeBSD--/etc
- 【1】关于集合框架的思考
- 打开页面就是全屏的解决办法