1.xml

<?xml version="1.0" encoding="utf-8" ?>
<stories>
<story ac="">
<title>A House in Aungier Street</title>
<author>
<name>Sheridan le Fanu</name>
<nationality>Irish</nationality>
</author>
<rating>eerie</rating>
</story>
<story ac ="">
<title>The Signalman</title>
<author>
<name>Charles Dickens</name>
<nationality>English</nationality>
</author>
<rating>atmospheric</rating>
</story> </stories>

代码,添加一个按钮,并绑定到btnLoop_Click方法,添加lable txtResult即可

private void btnLoop_Click(object sender, EventArgs e)
{ XmlDocument doc = new XmlDocument();
string filePath =@"D:\文档\VS2010项目\XMLTest\XMLTest\XMLFile1.xml";
doc.Load(filePath); //添加节点
XmlElement newBook = doc.CreateElement("story");
XmlElement newTitle = doc.CreateElement("Title");
XmlElement newAuthor = doc.CreateElement("author");
XmlElement newName = doc.CreateElement("name");
XmlElement newNationality = doc.CreateElement("nationality");
XmlElement newRating =doc.CreateElement("rating"); XmlText title = doc.CreateTextNode("Beginning VS2010");
XmlText name = doc.CreateTextNode("Karing");
XmlText nationality = doc.CreateTextNode("UK");
XmlText rating = doc.CreateTextNode("4 star");
XmlComment comment = doc.CreateComment("The Previous Version"); newBook.AppendChild(comment);
newBook.AppendChild(newTitle);
newBook.AppendChild(newAuthor);
newAuthor.AppendChild(newName);
newAuthor.AppendChild(newNationality);
newBook.AppendChild(newRating); newTitle.AppendChild(title);
newName.AppendChild(name);
newNationality.AppendChild(nationality);
newRating.AppendChild(rating); XmlNode root = doc.DocumentElement;
root.InsertAfter(newBook, root.FirstChild);//放到第一个子节点之后 doc.Save("xmlFileAddNode.xml"); //删除节点
root.RemoveChild(root.FirstChild);//删除第一本书
doc.Save("deleteNode.xml"); //在不遍历xml文档的情况下选择节点
txtResult.Text = FormatText(root, "", "");//遍历xml
} //通过循环xml节点把xml写入字符串
private string FormatText(XmlNode node, string text, string indent)
{
if (node is XmlText)
{
text += node.Value;
return text;
} if (string.IsNullOrEmpty(indent))
indent = "";
else
text += "\r\n" + indent; if (node is XmlComment)//注释节点
{
text += node.OuterXml;//OuterXml:当前节点的XML,InnerXml:当前节点开始标签和结束标签之间的XML,Value 只有XmlText,XmlAttribute,XmlComment有值,文本节点的文本值或者属性值
return text;//注InnerText返回当前节点所有字节的文本,如<book><title>111</title><author>222</author></book>,book节点的InnerText是111222
} text += "<" + node.Name;
if (node.Attributes.Count > )
{
AddAttributes(node,ref text);//属性
} if (node.HasChildNodes)
{
text += ">";
foreach (XmlNode child in node.ChildNodes)
{
text = FormatText(child, text, indent + " ");
} if(node.ChildNodes.Count ==&&(node.FirstChild is XmlText || node.FirstChild is XmlComment))
text +="</"+node.Name +">";
else
text +="\r\n"+"</"+node.Name +">";
}else
text +=" />"; return text;
} private void AddAttributes(XmlNode node ,ref string text)
{
foreach (XmlAttribute xa in node.Attributes)
{
text += " " + xa.Name + "='" + xa.Value + "'";
}
}

2.遍历XML即添加修改节点的更多相关文章

  1. 用dom4j修改xml(增加修改节点)

    用dom4j修改xml(增加修改节点) 博客分类: Java XMLJavaMyeclipseServlet  使用dom4j修改解析xml,xml文件的位置是配置在xml.properties文件中 ...

  2. Idea开发环境中,开发springboot类型的项目,如果只引入parent节点,不添加依赖节点,maven是不会加载springboot的任何依赖的

    在SpringBoot类型的项目中,我本来是要使用pringBoot,创建一个Console项目,我原本在pom.xml中添加paren节点了,天真的认为不需要再添加其他任何依赖了,可是接下来的1个小 ...

  3. C# xml 读xml、写xml、Xpath、Xml to Linq、xml添加节点 xml修改节点

    #region XDocument //创建XDocument XDocument xdoc2 = new XDocument(); XElement xel1= new XElement(" ...

  4. Dom4j向XML中指定位置添加、删除、修改节点——(五)

    需求: 在第一本书作者后面增加描述 <描述>好书</描述>  思路:获取书下面下的所有节点(一个list集合),在list集合指定位置添加一个元素(list.add(index ...

  5. C#中操作xml文件(插入节点、修改、删除)

    已知有一个xml文件(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?> <b ...

  6. 使用DOM解析XML文件,、读取xml文件、保存xml、增加节点、修改节点属性、删除节点

    使用的xml文件 <?xml version="1.0" encoding="GB2312" ?> <PhoneInfo> <Br ...

  7. c#操作xml的代码(插入节点、修改节点、删除节点等)

    bookstore.xml文件内容: 复制代码代码示例: <?xml version="1.0" encoding="gb2312"?><bo ...

  8. 用TinyXml做XML解析示例 TinyXml查找唯一节点及修改节点操作

    // 读者对象:对TinyXml有一定了解的人.本文是对TinyXml工具的一些知识点的理解. // 1 TinyXml中对TiXmlNode进行了分类,是用一个枚举进行描述的. // enum No ...

  9. 问题:jQuery中遍历XML文件时候,获取子节点children不支持的情况(已解决)

    问题描述: 今天在写一个基于 jquery 的读取xml文件的程序时候,需要遍历xml的节点. 代码片段如下: function parse_xml_node(parent,result){ // r ...

随机推荐

  1. 【编程开发】x86,I386,i686, x86_64, x64,amd64、Windows Linux AIX下查看CPU位数和操作系统位数、rpm包名

    a2ps-4.13b-57.2.el5.i386.rpm 每一个rpm包的名称都由"-"和"."分成了若干部分.就拿 a2ps-4.13b-57.2.el5.i ...

  2. OpenJudge 2755:神奇的口袋

    总时间限制: 10000ms 内存限制: 65536kB 描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体 ...

  3. 第7/7Beta冲刺

    1.团队成员 成员姓名 成员学号 秦裕航 201731062432(组长) 刘东 201731062227 张旭 201731062129 王伟 201731062214 2.SCRU部分 2.1各成 ...

  4. 【转帖】MIPS构架之:我和龙芯有个约会

    MIPS构架之:我和龙芯有个约会 https://www.eefocus.com/mcu-dsp/364490 <处理器史话>之十二 2016-06-24 12:21 作者:付丽华预计 1 ...

  5. tcpdump网络调试

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  6. Java反射桥接方法解析

    在阅读mybaits源码的反射模块时,看到了如下的一段代码: /** * 添加 Method 数组到 uniqueMethods * @param uniqueMethods * @param met ...

  7. 屏蔽组合键[CTRL+N]

    https://www.cnblogs.com/gaodu2003/archive/2011/05/05/2037229.html …… const  _KeyPressMask=$80000000; ...

  8. 【scratch3.0教程】1.3 了解scratch界面内容

    第3课 了解Scratch界面内容 1.认识Scratch界面 双击桌面快捷方式,启动Scratch程序.我们来认识一下Scratch界面吧! (1)指令区 Scratch程序一共有运动.外观.声音. ...

  9. [洛谷P4052][JSOI2007]文本生成器

    题目大意:有$n$个字符串$s_i$,问有多少个长度为$m$的字符串至少包含$n$个字符串中的一个,字符集 A-Z .$s_i,m\leqslant100,n\leqslant60$ 题解:$AC$自 ...

  10. redis GEO的使用

    一.概念 redis的GEO特性在Redis3.2版本发布,这个功能可以将用户给定的地理位置信息储存起来,并对这些信息进行操作. GEO常用语LBS(Location Based Service),基 ...