我要根据读出的数据自动生成一个xml文件,文件格式:
<?xml version="1.0" encoding="gb2312" ?>
<Channels>
<thumb value="upload/up1.txt" />
</Channels>
<Channels>
<thumb value="upload/up2.txt" />
</Channels>请我大家是怎么写的?
<?xml version="1.0" encoding="gb2312" ?>
<Channels>
<thumb value="upload/up1.txt" />
</Channels>
<Channels>
<thumb value="upload/up2.txt" />
</Channels>请我大家是怎么写的?
or
类序列化
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
namespace OperateXml
{
public class XmlHelper
{
/// <summary>
/// 创建XML文件
/// </summary>
/// <param name="fileName">XML文件路径和文件名</param>
/// <param name="rootElement">XML文件根元素名称</param>
public static void CreateXmlFile(string fileName,string rootElement)
{
if (!File.Exists(fileName))
{
//创建Xml文件
XmlTextWriter writer = new XmlTextWriter(fileName, Encoding.UTF8);
//设置自动缩进
writer.Formatting = Formatting.Indented;
//XML版本声明
writer.WriteStartDocument();
//根元素
writer.WriteStartElement(rootElement);
//关闭根元素,并书写结束标签
writer.WriteEndElement();
//将XML写入文件并且关闭XmlTextWriter实例对象
writer.Close();
}
} /// <summary>
/// 添加XML数据
/// </summary>
/// <param name="fileName">XML文件路径和文件名</param>
/// <param name="rootElement">XML文件根元素名称</param>
/// <param name="itemElement">XML文件二级元素名称</param>
/// <param name="childElement">XML文件三级元素名称和值</param>
public static void AppendChildElement(string fileName, string rootElement,string itemElement, Dictionary<string,string> childElement)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
XmlNode root = xmlDoc.SelectSingleNode(rootElement);
XmlElement el = xmlDoc.CreateElement(itemElement);
foreach(var item in childElement)
{
XmlElement elChild = xmlDoc.CreateElement(item.Key);
elChild.InnerText = item.Value;
el.AppendChild(elChild);
} root.AppendChild(el);
xmlDoc.Save(fileName);
}
/// <summary>
/// 删除数据行
/// </summary>
/// <param name="fileName">XML文件</param>
/// <param name="rowNode">顶级节点</param>
/// <param name="elementID">要查找的三级节点的InnerText,根据此值删除二级节点(一条数据)</param>
public static void RemoveRecord(string fileName,string rowNode,string elementID)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
XmlNodeList nodeList = xmlDoc.SelectSingleNode(rowNode).ChildNodes;
foreach (XmlNode node in nodeList)
{
XmlElement el = (XmlElement)node;
XmlNodeList nodeListChild = el.ChildNodes;
foreach (XmlNode nodeChild in nodeListChild)
{
if (nodeChild.InnerText == elementID)
{
xmlDoc.SelectSingleNode(rowNode).RemoveChild(node);
break;
}
}
}
xmlDoc.Save((fileName));
}
}
}
她创建的XML文档是这种结构的
<?xml version="1.0" encoding="utf-8"?>
<Count>
<Record>
<ID>af9b6ade-8bb3-4151-80e9-fc661d0677e0</ID>
<Year>2009</Year>
<Month>6</Month>
<Day>2009-6-1 0:00:00</Day>
<ClassHour>8</ClassHour>
</Record>
</Count>
dataset myds = new dataset
然后 myds.WriteXml(“这里是路径”)
DataSet myds = new DataSet("ds");
myds.ReadXml(Server.MapPath("Students.xml"));
DataRow DR = myds.Tables[0].NewRow();
DR["name"] = txtName.Text.Trim();
DR["GPA"] = txtsex.Text.Trim();
DR["age"] = txtage.Text.Trim();
DR["LockerCombination"] = txtcontain.Text.Trim();
myds.Tables[0].Rows.Add(DR);
myds.WriteXml(Server.MapPath("Students.xml"));
XmlDocument xmldoc;
XmlNode xmlnode;
XmlElement xmlelem;xmldoc = new XmlDocument();
//加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>
XmlDeclaration xmldecl;
xmldecl = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
xmldoc.AppendChild(xmldecl);//加入一个根元素
xmlelem = xmldoc.CreateElement("", "Channels", "");
xmldoc.AppendChild(xmlelem);
//加入另外一个元素
for (int i = 1; i < 3; i++)
{
XmlNode root = xmldoc.SelectSingleNode("Channels");//查找<Channels>
XmlElement xel = xmldoc.CreateElement("thumb");
xel.SetAttribute("value", "upload/up"+i".txt");
root.AppendChild(xel);
}
//保存创建好的XML文档
xmldoc.Save(Server.MapPath("upload/data.xml"));