用c#写XML文件问题

linjch 2009-12-29 11:54:01
请高手帮我用c#写一个像下面格式的XML文件:

<?xml version="1.0" encoding="GBK" ?>
- <result>

<authentication>true</authentication>

<userrole>student</userrole>

</result>

...全文
243 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wusenet041 2010-01-04
  • 打赏
  • 举报
回复
前面这么多高手了 我就不班门弄斧了
linjch 2010-01-04
  • 打赏
  • 举报
回复
真是谢谢各位了,分都不知道怎么分了!
  • 打赏
  • 举报
回复

private void button2_Click(object sender, EventArgs e)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.Encoding = Encoding.GetEncoding("gbk");//只能得到 gb2312
XmlWriter writer = XmlWriter.Create("test.xml", settings);
writer.WriteStartDocument();
writer.WriteStartElement("result");

writer.WriteStartElement("authentication");
writer.WriteString("true");
writer.WriteEndElement();

writer.WriteStartElement("userrole");
writer.WriteString("student");
writer.WriteEndElement();

writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
}


文件内容:

<?xml version="1.0" encoding="gb2312"?>
<result>
<authentication>true</authentication>
<userrole>student</userrole>
</result>
ProjectDD 2009-12-30
  • 打赏
  • 举报
回复
XmlWriter xw=XmlWriter("x.xml");
xw.WriteStartElement("result")
xw.WriteElementString("authentication","true");
xw.WriteElementString("userrole","student");
xw.WriteEndElement();

xw.Flush();
xw.Close();
wxm3630478 2009-12-30
  • 打赏
  • 举报
回复

string path = Application.StartupPath + "\\MyXml.xml";
if (!File.Exists(path)) //不存在文件创建
{
XmlDocument xml = new XmlDocument();
XmlDeclaration dec = xml.CreateXmlDeclaration("1.0", "UTF-8", null);
xml.AppendChild(dec);
XmlNode rootnode = xml.CreateNode(XmlNodeType.Element, "result", "");
xml.AppendChild(rootnode); //添加跟节点
XmlNode childnode1 = xml.CreateNode(XmlNodeType.Element, "authentication", "");
childnode1.InnerText = "true";
rootnode.AppendChild(childnode1);
XmlNode childnode2 = xml.CreateNode(XmlNodeType.Element, "userrole", "");
childnode2.InnerText = "student";
rootnode.AppendChild(childnode2);
xml.Save(path);
}
lee_b 2009-12-30
  • 打赏
  • 举报
回复
那我还不是习惯抄呀。。抄都不抄的,
一般都是习惯拷代码了。。。
flyerwing 2009-12-30
  • 打赏
  • 举报
回复
网上找了,一找一堆;已经习惯抄代码了
antony1029 2009-12-30
  • 打赏
  • 举报
回复
可以用序列化的方式生产xml啊。给实体类加标签属性啊。
m_struggle 2009-12-30
  • 打赏
  • 举报
回复
上面几楼的写法都行
kensouterry 2009-12-30
  • 打赏
  • 举报
回复
哇!解释得真够详细的!
chxg99 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yangglemu 的回复:]
C# codeprivatevoid button2_Click(object sender, EventArgs e)
{
XmlWriterSettings settings=new XmlWriterSettings();
settings.Indent=true;
settings.Encoding= Encoding.GetEncoding("gbk");//只能得到 gb2312 XmlWriter writer= XmlWriter.Create("test.xml", settings);
writer.WriteStartDocument();
writer.WriteStartElement("result");

writer.WriteStartElement("authentication");
writer.WriteString("true");
writer.WriteEndElement();

writer.WriteStartElement("userrole");
writer.WriteString("student");
writer.WriteEndElement();

writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
}

文件内容:

<?xml version="1.0" encoding="gb2312"?>
<result>
  <authentication>true </authentication>
  <userrole>student </userrole>
</result>
[/Quote]
ding!
hyfzz123 2009-12-30
  • 打赏
  • 举报
回复
上面这些辅助方法,你想创建啥节点都行了。。
hyfzz123 2009-12-30
  • 打赏
  • 举报
回复

#region 添加节点
public static void AddXmlNode(string text, string value, string fileName)
{
XmlDocument xmldoc = new XmlDocument();
XmlElement root;
xmldoc.Load( fileName);
root = xmldoc.DocumentElement;
XmlElement subNode = xmldoc.CreateElement("subNode");
XmlElement nodeName = xmldoc.CreateElement("nodeName");
XmlElement nodeTag = xmldoc.CreateElement("nodeTag");
nodeName.InnerXml = text;
nodeTag.InnerXml = value;
subNode.AppendChild(nodeName);
subNode.AppendChild(nodeTag);
root.AppendChild(subNode);
xmldoc.Save( fileName);

}
#endregion

#region 删除节点
public static void DelXmlNode(string text, string value, string fileName)
{
XmlDocument xmldoc = new XmlDocument();
XmlElement root;
xmldoc.Load(fileName);
root = xmldoc.DocumentElement;
foreach (XmlNode item in root.ChildNodes)
{
if (item.ChildNodes[0].InnerXml==text&&item.ChildNodes[1].InnerXml==value)
{
root.RemoveChild(item);
break;
}
}
xmldoc.Save(fileName);
}
#endregion
hyfzz123 2009-12-30
  • 打赏
  • 举报
回复

#region 创建
public static bool CreatXml(string fileName)
{
try
{
if (!File.Exists( fileName))
{
XmlTextWriter textWriter = new XmlTextWriter(fileName, null);
//-------创建XML写操作对象
textWriter.Formatting = Formatting.Indented;
//-------开始写过程,调用WriteStartDocument方法
textWriter.WriteStartDocument();
//-------写入说明
//textWriter.WriteComment("this XML is created from a tree");
//-------添加第一个根节点
textWriter.WriteStartElement("rootNode");
textWriter.WriteEndElement();
//------ 写文档结束,调用WriteEndDocument方法
textWriter.WriteEndDocument();
//-----关闭输入流
textWriter.Close();
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return true;
}
#endregion

#region 写入
public static bool WriteXml(string key, string value, string fileName)
{
XmlDocument xmldoc = new XmlDocument();
XmlElement root;
try
{
xmldoc.Load( fileName);
root = xmldoc.DocumentElement;
foreach (XmlNode item in root.ChildNodes)
{
if (item.ChildNodes[0].InnerXml==key)
{
item.ChildNodes[1].InnerXml = value;
break;
}
}
xmldoc.Save( fileName);
}
catch (System.Exception ex)
{
throw new Exception(ex.Message);
}
return true;
}
#endregion
#region 读取
public static string ReadXml(string keys, string fileName)
{

XmlDocument xmldoc = new XmlDocument();
XmlElement root;
xmldoc.Load(fileName);
root = xmldoc.DocumentElement;
foreach (XmlNode item in root.ChildNodes)
{
if (item.ChildNodes[0].InnerXml == keys)
{
return item.ChildNodes[1].InnerXml;
}
}
return "";
}
#endregion

110,536

社区成员

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

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

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