c# 中怎么把信息写入xml文件

rysmissyou 2010-08-05 10:18:13
<name>123</name>
<age>123</age>

怎么写一个上边那样的xml文件,要求xml是自动生成的以前没有
...全文
434 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ryan20082009 2010-08-05
  • 打赏
  • 举报
回复
public void TypeObjectToXmlString()
{
string file1 = @"..\Test\Spoke\Manual\Lp\Mstr\Samples\SBAMSTR-Part.TXT";
FileClass d = new FileClass();
d.vendorCode = "Lp";
d.fileCode= "Mstr";
d.file = file1;
try
{
System.Xml.Serialization.XmlSerializer writer =
new System.Xml.Serialization.XmlSerializer(typeof(FileClass));
System.IO.StreamWriter file = new System.IO.StreamWriter(@"D:\FileClass.xml");
writer.Serialize(file, d);
file.Close();
Console.WriteLine("Success!");
}
catch (Exception e)
{
Console.WriteLine(e);
}

}
这个我已经测试成功
一克代码 2010-08-05
  • 打赏
  • 举报
回复
/// <param name="attribute">属性名,非空时修改该节点属性值,否则修改节点值</param>
mountroste 2010-08-05
  • 打赏
  • 举报
回复
XML是什么文件啊
rysmissyou 2010-08-05
  • 打赏
  • 举报
回复
问下 修改里的 attribute 是什么的值啊
guohelv0519 2010-08-05
  • 打赏
  • 举报
回复
上述代码已经很全面了,彻底模拟了数据库数据操作:增删改查。
一克代码 2010-08-05
  • 打赏
  • 举报
回复
用我给你的类

直接修改就行了 啊 !

里面有添加

修改
删除

rysmissyou 2010-08-05
  • 打赏
  • 举报
回复
这个问题解决了,谢谢大家
又有个问题xml和上边的一样,我想直接改变name和age的值怎么操作啊!!
谢谢了
happyer_longlong 2010-08-05
  • 打赏
  • 举报
回复
很好 上面的代码
一克代码 2010-08-05
  • 打赏
  • 举报
回复

/// <summary>
/// 删除数据
/// </summary>
/// <param name="path">路径</param>
/// <param name="node">节点</param>
/// <param name="attribute">属性名,非空时删除该节点属性值,否则删除节点值</param>
/// <param name="value">值</param>
/// <returns></returns>
/**************************************************
* 使用示列:
* XmlHelper.Delete(path, "/Node", "")
* XmlHelper.Delete(path, "/Node", "Attribute")
************************************************/
public static void Delete(string path, string node, string attribute)
{
// XmlDocument doc = new XmlDocument();
// doc.Load(path);
// XmlNode xn = doc.SelectSingleNode(node);
// string mainNode = node.Substring(0, node.LastIndexOf("/"));
//doc.SelectSingleNode(mainNode).RemoveChild(doc.SelectSingleNode(node));

try
{
XmlDocument doc = new XmlDocument();
doc.Load(path);
// XmlNode xn = doc.SelectSingleNode(node);
XmlNodeList xnl = doc.SelectSingleNode(node).ChildNodes;
foreach (XmlNode xn in xnl)
{
XmlNodeList xnl1 = xn.SelectSingleNode("RedirectUrl").ChildNodes;
XmlElement xe = (XmlElement)xn;
for (int j = 0; j < xnl1.Count; j++)
{
XmlElement xe1 = (XmlElement)xnl1.Item(j);
if (xe1.GetAttribute("UrlName") == "小路工作室1231231231")
{
xn.RemoveChild(xe1);
if (j < xnl1.Count) j = j - 1;
}
}

}

doc.Save(path);
}
catch { }
}

/// <summary>
/// 删除属性带key的节点,key:GUID
/// </summary>
/// <param name="path">XML文件路径</param>
/// <param name="rootnode">根节点</param>
/// <param name="key">key:Guid</param>
/// <param name="msg">返回的信息</param>
public static void DeleteXMLNode(string path, string rootnode, string znode,string type,string key)
{
try
{
if (System.IO.File.Exists(path))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
XmlNodeList xl = xmlDoc.SelectSingleNode(rootnode).ChildNodes;
for (int i = 0; i < xl.Count; i++)
{
XmlElement xe = (XmlElement)xl[i];//第i个dbGust子节点
XmlNodeList node = xe.GetElementsByTagName(znode);
if (node.Count > 0)
{
for (int j = 0; j < node.Count; j++)
{
XmlNode node1 = node.Item(j);
XmlElement xe1 = (XmlElement)node.Item(j);
if (xe1.GetAttribute(type) == key)
{
xmlDoc.SelectSingleNode(rootnode).RemoveChild(node[0].ParentNode);//删除该节点
break;
}
}

}
}

xmlDoc.Save(path);
}
}
catch (XmlException ex)
{

}

}
/// <summary>
/// 返回符合指定名称的节点数
/// </summary>
/// <param name="nodeName">节点名</param>
/// <returns>节点数</returns>
public static int Count(string path,string nodeName,string znode)
{
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
XmlElement xe = (XmlElement)xmlDoc.SelectSingleNode(nodeName); //查找根node节点
XmlNodeList nodeList = xe.GetElementsByTagName(znode);
return nodeList.Count;
}
catch (Exception e)
{
throw (new Exception(e.Message));
}
}
/// <summary>
/// 返回最后的数字
/// </summary>
/// <param name="path"></param>
/// <param name="nodeName"></param>
/// <param name="znode"></param>
/// <returns></returns>
public static string num(string path, string nodeName, string znode,string type)
{
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
XmlElement xe = (XmlElement)xmlDoc.SelectSingleNode(nodeName); //查找根node节点
XmlNodeList nodeList = xe.GetElementsByTagName(znode);
int i = nodeList.Count;
XmlElement xe1 = (XmlElement)nodeList.Item(nodeList.Count-1);
string inum=xe1.GetAttribute(type);

return inum;
}
catch (Exception e)
{
throw (new Exception(e.Message));
}
}
}

}


一克代码 2010-08-05
  • 打赏
  • 举报
回复
给你一个xml操作类:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Collections.Generic;

namespace NetView.Models
{

/// <summary>
/// XmlHelper 的摘要说明
/// </summary>
public class XmlHelper
{
private string msg;
public XmlHelper()
{
}

/// <summary>
/// 读取数据
/// </summary>
/// <param name="path">路径</param>
/// <param name="node">节点</param>
/// <param name="attribute">属性名,非空时返回该属性值,否则返回串联值</param>
/// <returns>string</returns>
/**************************************************
* 使用示列:
* XmlHelper.Read(path, "/Node", "")
* XmlHelper.Read(path, "/Node/Element[@Attribute='Name']", "Attribute")
************************************************/
public static string Read(string path, string node, string attribute)
{
string value = "";
try
{
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode xn = doc.SelectSingleNode(node);
value = (attribute.Equals("") ? xn.InnerText : xn.Attributes[attribute].Value);
}
catch { }
return value;
}




/// <summary>
/// 插入
/// </summary>
/// <param name="path"></param>
/// <param name="node"></param>
/// <param name="node1"></param>
/// <param name="element"></param>
/// <param name="attribute"></param>
/// <param name="value"></param>
public static void Insert(string path, string node, string node1, string element, string attribute, string value, string attribute1, string value1)
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode xn = doc.SelectSingleNode(node); //查找根node节点
XmlElement xel = doc.CreateElement(node1);

XmlElement xe = doc.CreateElement(element);
if (attribute.Equals(""))
xe.InnerText = value;
else
xe.SetAttribute(attribute, value);
xe.SetAttribute(attribute1, value1);
xel.AppendChild(xe);
xn.AppendChild(xel);
//}
doc.Save(path);

}
catch { }
}
/// <summary>
/// 插入数据
/// </summary>
/// <param name="path">路径</param>
/// <param name="node">节点</param>
/// <param name="element">元素名,非空时插入新元素,否则在该元素中插入属性</param>
/// <param name="attribute">属性名,非空时插入该元素属性值,否则插入元素值</param>
/// <param name="value">值</param>
/// <returns></returns>
/**************************************************
* 使用示列:
* XmlHelper.Insert(path, "/Node", "Element", "", "Value")
* XmlHelper.Insert(path, "/Node", "Element", "Attribute", "Value")
* XmlHelper.Insert(path, "/Node", "", "Attribute", "Value")
************************************************/
public static void Insert(string path, string node, string element, string attribute, string value)
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode xn = doc.SelectSingleNode(node);
if (element.Equals(""))
{
if (!attribute.Equals(""))
{
XmlElement xe = (XmlElement)xn;
xe.SetAttribute(attribute, value);
}
}
else
{
XmlElement xe = doc.CreateElement(element);
if (attribute.Equals(""))
xe.InnerText = value;
else
xe.SetAttribute(attribute, value);
xn.AppendChild(xe);
}
doc.Save(path);
}
catch { }
}

/// <summary>
/// 修改数据
/// </summary>
/// <param name="path">路径</param>
/// <param name="node">节点</param>
/// <param name="attribute">属性名,非空时修改该节点属性值,否则修改节点值</param>
/// <param name="value">值</param>
/// <returns></returns>
/**************************************************
* 使用示列:
* XmlHelper.Insert(path, "/Node", "", "Value")
* XmlHelper.Insert(path, "/Node", "Attribute", "Value")
************************************************/
public static void Update(string path, string node, string attribute, string value)
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode xn = doc.SelectSingleNode(node);
XmlElement xe = (XmlElement)xn;
if (attribute.Equals(""))
xe.InnerText = value;
else
xe.SetAttribute(attribute, value);
doc.Save(path);
}
catch { }
}


wuyq11 2010-08-05
  • 打赏
  • 举报
回复
XmlDocument xmldoc = new XmlDocument();
XmlNode xmlnode = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
xmldoc.AppendChild(xmlnode);

xmldoc.Save(Server.MapPath("a.xml"));


XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml("<?xml version='1.0' encoding='gb2312'?>...");
xmldoc.Save(Server.MapPath("a.xml")); //保存
wuyq11 2010-08-05
  • 打赏
  • 举报
回复
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
XmlWriter writer = XmlWriter.Create(@"c:\my.xml",settings);
writer.WriteStartDocument();
writer.WriteStartElement("");
writer.WriteEndElement();
deknight 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 rysmissyou 的回复:]
C# code
// 创建XmlTextWriter类的实例对象
XmlTextWriter textWriter = new XmlTextWriter("login.xml",null);
textWriter.Formatting = Formatting.Indented;
……
[/Quote]
...你不save当然不会有...
textWriter.save()
rysmissyou 2010-08-05
  • 打赏
  • 举报
回复
 // 创建XmlTextWriter类的实例对象
XmlTextWriter textWriter = new XmlTextWriter("login.xml",null);
textWriter.Formatting = Formatting.Indented;
// 开始写过程,调用WriteStartDocument方法
textWriter.WriteStartDocument();
//创建一个节点
textWriter.WriteStartElement("user");
textWriter.WriteElementString("name", "123");
textWriter.WriteElementString("age", "456");
textWriter.WriteEndElement();
// 写文档结束,调用WriteEndDocument方法
textWriter.WriteEndDocument();

// 关闭textWriter
textWriter.Close();

我这样写行吗?为什么执行了,没有创建这个文件那?
gomoku 2010-08-05
  • 打赏
  • 举报
回复
:)

string name = 123;
int age = 123;

string xmlSnippet = string.Format(
CultureInfo.InvariantCulture,
"<name>{0}</namd><age>{1}</age>",
name, age);
liumj2001 2010-08-05
  • 打赏
  • 举报
回复
XmlNode xNode;
xNode = xdoc.DocumentElement;
XmlNodeList xnl;
XmlElement xn;
foreach (XmlNode cNode in xNode.ChildNodes)
{
//更改连接
if (cNode.Name == "DataSources")
{
foreach (XmlNode dNode in cNode.ChildNodes)
{
xn = (XmlElement)dNode;
if (xn.GetAttribute("Name") == "DS1")
{
xnl = xn.ChildNodes;
foreach (XmlNode qNode in xnl)
{
if (qNode.Name == "ConnectionProperties")
{
foreach (XmlNode sNode in qNode.ChildNodes)
{
if (sNode.Name == "ConnectString")
{
sNode.InnerText = connstr;
break;
}
}
}
}
}
}
}
rysmissyou 2010-08-05
  • 打赏
  • 举报
回复
急......

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧