<?xml version="1.0" encoding="utf-8" ?>
<character>
<select>
<id>0</id>
<name>1</name>
<where></where>
</select>
<from>
<id>1</id>
<name>name</name>
</from>
<where>
<faild></faild>
<bb></bb>
<aa></aa>
</where>
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Xml;
namespace WinFormTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
createXml();
}
private void createXml()
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = (" ");
using (XmlWriter writer = XmlWriter.Create("c:/books.xml", settings))
{
// Write XML data.
// writer.WriteStartElement("book");
writer.WriteComment("test");
writer.WriteStartElement("book");
writer.WriteElementString("title", "ti");
writer.WriteElementString("price", "19.95");
writer.WriteEndElement();
writer.Flush();
}
}
//public DataTable Bind(string fullFolderPath)//创建数据表读取文件夹内容
//{
// //以下是动态创建数据表的方法
// DataTable dt = new DataTable();
// DataRow dr;
// //首先创建数据表结构
// dt.Columns.Add(new DataColumn("type", System.Type.GetType("System.String")));//类型
// dt.Columns.Add(new DataColumn("name", System.Type.GetType("System.String")));//名称
// dt.Columns.Add(new DataColumn("action", System.Type.GetType("System.String")));//操作
// dt.Columns.Add(new DataColumn("owner", System.Type.GetType("System.String")));//创建人
// //为每一行填充数据
// foreach (string d in Directory.GetFileSystemEntries(fullFolderPath))
// {
// dr = dt.NewRow();//建新行
// string[] parts = d.Split(new char[] { '/' });
// string txt = parts[parts.Length - 1];//取最后一部分的字符串,它将可能是文件名或文件夹
// dr[1] = txt;//名称name
// if (File.Exists(d))//如果是文件
// {
// dr[0] = "文件";//类型type
// int pos = currFullPath.IndexOf("NetHard");
// string relaUrl = currFullPath.Substring(pos);
// string
// url = "http://10.80.50.1/SharedSpace/" + relaUrl + "/" + txt;//10.80.50.1为作者服务器地址,你应该将它修改为你所在服务器地址
// dr[2] = "<a href=" + url + " target=_blank" + ">下载</a>";
// }
// else if (Directory.Exists(d))
// {//如果是文件夹
// dr[0] = "文件夹";//type类型
// string passWord = GetFolderPassword(d);//取得文件夹密码信息
// int type = GetFolderLimitType(d);
// if ((password != "no") && (type != 1))
// dr[2] = "<a href=PasswordValidate.aspx?path=" + d + ">密封</a>";//操作action
// else
// dr[2] = "<a href=Default.aspx?path=" + d + ">进入</a>";//操作action
// dr[3] = GetFolderOwner(d);//取文件夹创建者名
// }
// else
// //Response.Write("<script>alert('无对象可绑定!')</script>");
// dt.Rows.Add(dr);//添加行
// return dt;//返回数据表
// }
//}
public void CreateXmlOrAddFrag(string xmlFullPath, string folderFullPath, string owner, string password, int type)
{
XmlDocument xmlDoc = new XmlDocument();
string xml = "";
string xmlNode = "<character>";
xmlNode += "<fullPath>";
xmlNode += folderFullPath;
xmlNode += "</fullPath>";
xmlNode += "<owner>";
xmlNode += owner;
xmlNode += "</owner>";
xmlNode += "<password>";
xmlNode += password;
xmlNode += "</password>";
xmlNode += "<type>";
xmlNode += type;
xmlNode += "</type>";
xmlNode += "</character>";
if (!File.Exists(xmlFullPath))
{//不存在则创建xml存储文件
xml = "<?xml version='1.0' encoding='gb2312'?>";
xml += "<folder>";
xml += xmlNode;
xml += "</folder>";
xmlDoc.LoadXml(xml);
xmlDoc.Save(xmlFullPath);//存储文件
}
else
{//存在xml存储文件则添加新的文档片段
xmlDoc.Load(xmlFullPath);
XmlDocumentFragment docFrag = xmlDoc.CreateDocumentFragment();//文档片元素节点
docFrag.InnerXml = xmlNode;
XmlNode currNode = xmlDoc.DocumentElement;//获取文档根节淀
currNode.InsertBefore(docFrag, currNode.FirstChild);//插入文档段
xmlDoc.Save(xmlFullPath);//存储改变
}
}
private void button2_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
using (XmlReader reader = XmlReader.Create(@"c:ooks.xml"))
{
while (reader.Read())
{
if (reader.IsStartElement())
{
if (reader.IsEmptyElement)
Console.WriteLine("<{0}/>", reader.Name);
else
{
Console.Write("<{0}> ", reader.Name);
reader.Read(); // Read the start tag.
if (reader.IsStartElement()) // Handle nested elements.
Console.Write(" <{0}>", reader.Name);
Console.WriteLine(reader.ReadString()); //Read the text content of the element.
}
}
}
}
textBox1.Text = sb.ToString();
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Xml;
namespace WinFormTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
createXml();
}
private void createXml()
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = (" ");
using (XmlWriter writer = XmlWriter.Create("c:/books.xml", settings))
{
// Write XML data.
// writer.WriteStartElement("book");
writer.WriteComment("test");
writer.WriteStartElement("book");
writer.WriteElementString("title", "ti");
writer.WriteElementString("price", "19.95");
writer.WriteEndElement();
writer.Flush();
}
}
//public DataTable Bind(string fullFolderPath)//创建数据表读取文件夹内容
//{
// //以下是动态创建数据表的方法
// DataTable dt = new DataTable();
// DataRow dr;
// //首先创建数据表结构
// dt.Columns.Add(new DataColumn("type", System.Type.GetType("System.String")));//类型
// dt.Columns.Add(new DataColumn("name", System.Type.GetType("System.String")));//名称
// dt.Columns.Add(new DataColumn("action", System.Type.GetType("System.String")));//操作
// dt.Columns.Add(new DataColumn("owner", System.Type.GetType("System.String")));//创建人
// //为每一行填充数据
// foreach (string d in Directory.GetFileSystemEntries(fullFolderPath))
// {
// dr = dt.NewRow();//建新行
// string[] parts = d.Split(new char[] { '/' });
// string txt = parts[parts.Length - 1];//取最后一部分的字符串,它将可能是文件名或文件夹
// dr[1] = txt;//名称name
// if (File.Exists(d))//如果是文件
// {
// dr[0] = "文件";//类型type
// int pos = currFullPath.IndexOf("NetHard");
// string relaUrl = currFullPath.Substring(pos);
// string
// url = "http://10.80.50.1/SharedSpace/" + relaUrl + "/" + txt;//10.80.50.1为作者服务器地址,你应该将它修改为你所在服务器地址
// dr[2] = "<a href=" + url + " target=_blank" + ">下载</a>";
// }
// else if (Directory.Exists(d))
// {//如果是文件夹
// dr[0] = "文件夹";//type类型
// string passWord = GetFolderPassword(d);//取得文件夹密码信息
// int type = GetFolderLimitType(d);
// if ((password != "no") && (type != 1))
// dr[2] = "<a href=PasswordValidate.aspx?path=" + d + ">密封</a>";//操作action
// else
// dr[2] = "<a href=Default.aspx?path=" + d + ">进入</a>";//操作action
// dr[3] = GetFolderOwner(d);//取文件夹创建者名
// }
// else
// //Response.Write("<script>alert('无对象可绑定!')</script>");
// dt.Rows.Add(dr);//添加行
// return dt;//返回数据表
// }
//}
public void CreateXmlOrAddFrag(string xmlFullPath, string folderFullPath, string owner, string password, int type)
{
XmlDocument xmlDoc = new XmlDocument();
string xml = "";
string xmlNode = "<character>";
xmlNode += "<fullPath>";
xmlNode += folderFullPath;
xmlNode += "</fullPath>";
xmlNode += "<owner>";
xmlNode += owner;
xmlNode += "</owner>";
xmlNode += "<password>";
xmlNode += password;
xmlNode += "</password>";
xmlNode += "<type>";
xmlNode += type;
xmlNode += "</type>";
xmlNode += "</character>";
if (!File.Exists(xmlFullPath))
{//不存在则创建xml存储文件
xml = "<?xml version='1.0' encoding='gb2312'?>";
xml += "<folder>";
xml += xmlNode;
xml += "</folder>";
xmlDoc.LoadXml(xml);
xmlDoc.Save(xmlFullPath);//存储文件
}
else
{//存在xml存储文件则添加新的文档片段
xmlDoc.Load(xmlFullPath);
XmlDocumentFragment docFrag = xmlDoc.CreateDocumentFragment();//文档片元素节点
docFrag.InnerXml = xmlNode;
XmlNode currNode = xmlDoc.DocumentElement;//获取文档根节淀
currNode.InsertBefore(docFrag, currNode.FirstChild);//插入文档段
xmlDoc.Save(xmlFullPath);//存储改变
}
}
private void button2_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
using (XmlReader reader = XmlReader.Create(@"c:ooks.xml"))
{
while (reader.Read())
{
if (reader.IsStartElement())
{
if (reader.IsEmptyElement)
Console.WriteLine("<{0}/>", reader.Name);
else
{
Console.Write("<{0}> ", reader.Name);
reader.Read(); // Read the start tag.
if (reader.IsStartElement()) // Handle nested elements.
Console.Write(" <{0}>", reader.Name);
Console.WriteLine(reader.ReadString()); //Read the text content of the element.
}
}
}
}
textBox1.Text = sb.ToString();
}
}
}
本文介绍了一个使用 C# 进行 XML 文件创建及读取的示例程序。通过该程序,读者可以了解到如何利用 XmlWriter 和 XmlDocument 类来生成和解析 XML 数据。此外,还展示了如何动态创建 DataTable 来组织文件夹内容。

被折叠的 条评论
为什么被折叠?



