使用C#动态添加XML文档的有关问题。

tianyanqiujiaoyu 2011-04-26 04:12:42
现在想实现的功能就是
①、使用C#动态生成不是同一个盘下的XML文档(比如说项目在D盘,生成的XML文档在E盘)
②、XML文档的节点的动态的,比如说
<Employees>
<Node genre="李赞红" ISBN="2-3631-4">
<title>CS从入门到精通</title>
<author>候捷</author>
<price>58.3</price>
</Node>
</Employees>
已经生成了上述的节点,想重新点击按钮在改文档中另外生成另一个节点,请问该怎么实现呢?在线等,谢谢各位大侠。
...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianyanqiujiaoyu 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ranen2010 的回复:]
using System.Xml;

一、检查指定XML文件是否存在
System.IO.File.Exists(文件路径及名称);

二、利用C#编程创建 XML文件
我在网上找到了这样的两段代码:
代码一:
XmlDocument xmldoc = new XmlDocument();
XmlNode xmlnode;
XmlElement xmlelem;
XmlEle……
[/Quote]
我也用的是代码2,我的问题是,用代码2创建了XML的文档已经节点了,然后怎么重新调用该方法生成另外一个节点而不把上次生成的节点给替换掉。
小童 2011-04-26
  • 打赏
  • 举报
回复
using System.Xml;

一、检查指定XML文件是否存在
System.IO.File.Exists(文件路径及名称);

二、利用C#编程创建 XML文件
我在网上找到了这样的两段代码:
代码一:
XmlDocument xmldoc = new XmlDocument();
XmlNode xmlnode;
XmlElement xmlelem;
XmlElement xmlelem2;
XmlText xmltext;

//加入XML的声明段落
xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
xmlnode.InnerText+=" encoding=\"GB2312\"";
xmldoc.AppendChild(xmlnode);

//加入一个根元素
xmlelem = xmldoc.CreateElement("", "ROOT", "");
xmltext = xmldoc.CreateTextNode("Root Text");
xmlelem.AppendChild(xmltext);
xmldoc.AppendChild(xmlelem);

//加入另外一个元素
xmlelem2 = xmldoc.CreateElement("SampleElement");
xmlelem2 = xmldoc.CreateElement("","SampleElement","");
xmltext = xmldoc.CreateTextNode("The text of the sample element");
xmlelem2.AppendChild(xmltext);
xmldoc.ChildNodes.Item(1).AppendChild(xmlelem2);

//保存创建好的XML文档
try
{
xmldoc.Save("data.xml");
}
catch (Exception f)
{
//显示错误信息
MessageBox.Show(f.Message);
}
//Console.ReadLine();
这段代码在win2003ser+vs2005环境下测试成功,但是XML文件格式很乱,我不知道怎样调整格式,知道的朋友请赐教。

代码二:
string FileName =Application.StartupPath+"\\phone.xml";
XmlTextWriter objXmlTextWriter = new XmlTextWriter(FileName,Encoding.Default);

objXmlTextWriter.Formatting = Formatting.Indented;
objXmlTextWriter.Indentation = 6;

objXmlTextWriter.WriteStartDocument();

objXmlTextWriter.WriteStartElement("", "PhoneBook", "");

objXmlTextWriter.WriteStartElement("", "Name", "");
objXmlTextWriter.WriteString("加菲尔德");
objXmlTextWriter.WriteEndElement();

objXmlTextWriter.WriteStartElement("", "Number", "");
objXmlTextWriter.WriteString("5555555");
objXmlTextWriter.WriteEndElement();

objXmlTextWriter.WriteStartElement("", "City", "");
objXmlTextWriter.WriteString("纽约");
objXmlTextWriter.WriteEndElement();

objXmlTextWriter.WriteStartElement("", "DateOfBirth", "");
objXmlTextWriter.WriteString("26/10/1978");
objXmlTextWriter.WriteEndElement();

objXmlTextWriter.WriteEndElement();
objXmlTextWriter.WriteEndDocument();

objXmlTextWriter.Flush();

objXmlTextWriter.Close();
这段代码在win2003ser+vs2005环境下测试通过,出来的效果很好,也比较容易理解,

我一般就是用这段代码创建XML文件。

三、读取、修改XML文件的某个节点的值
string path = "phone.xml";
XmlDocument doc = new XmlDocument();
doc.Load(path);
//读所有节点表
XmlNamespaceManager xnm = new XmlNamespaceManager(doc.NameTable);
//读取节点值
XmlNode node = doc.SelectSingleNode("/PhoneBook/Name", xnm); //node.InnerText 就是读取出来的值

//修改节点值
node.InnerText="要修改的内容";

//保存修改后的内容
doc.Save(path);
  • 打赏
  • 举报
回复
在那个节点下添加呢。。 什么效果

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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