【原创】包含CDATA C#操作XML(无命名空间),添加/删除/编辑节点
2012-04-18 10:05
597 查看
本文介绍的是没有指定命名空间的XML(如需要操作带命名空间的,请点击),最近公司项目做的都是基于xml处理的,网上也一大堆有关xml操作的文章,几乎都是转载来的。今天小弟特意自己写3个例子,供需要的朋友学习。
xml文件
<?xml version="1.0" encoding="utf-8"?>
<Books>
<Book ID="1">
<Title>C#入门经典</Title>
<Price>95.00</Price>
</Book>
<Book ID="13">
<Title>C#从入门到精通</Title>
<Price>145.00</Price>
</Book>
<Book ID="4">
<Title>Java高级编程</Title>
<Price>165.00</Price>
</Book>
</Books>
//添加xml节点
private void addxml()
{
XmlDocument xmldoc = new XmlDocument();
//加载xml文件
xmldoc.Load(@"E:\Test\Test\tt.xml");
//查找 根节点 Books
XmlNode root = xmldoc.SelectSingleNode("Books");
//创建 子节点 Book
XmlElement book = xmldoc.CreateElement("Book");
book.SetAttribute("ID", "2");//设置子节点属性
//创建 Book 子节点 Title
XmlElement title = xmldoc.CreateElement("Title");
title.InnerText = "C#高级编程";
//title 节点 添加到 root
book.AppendChild(title);
//创建 Book 子节点 Price
XmlElement price = xmldoc.CreateElement("Price");
price.InnerText = "145.00";
//price 节点 添加到 root
book.AppendChild(price);
//最后把book 节点添加到root
root.AppendChild(book);
//保存
xmldoc.Save(@"E:\Test\Test\tt.xml");
}
//删除xml 节点
private void deletexml()
{
XmlDocument xmldoc = new XmlDocument();
//加载xml文件
xmldoc.Load(@"E:\Test\Test\tt.xml");
/*
//查找到ID=2的节点,删除book 下面的子节点,最后会留下一个空的<book></book>
XmlNodeList nodelist = xmldoc.SelectNodes("//Books/Book[@ID=2]");//需了解xpath
foreach (XmlNode n in nodelist)
{
XmlElement xe = (XmlElement)n;
//删除属性
xe.RemoveAllAttributes();
//删除节点
xe.RemoveAll();
}
*/
//删除 book=2 节点(包括book 节点)
XmlNodeList nodelist = xmldoc.SelectNodes("//Books/Book[@ID=2]");//需了解xpath
foreach (XmlNode n in nodelist)
{
n.ParentNode.RemoveChild(n);
}
//保存
xmldoc.Save(@"E:\Test\Test\tt.xml");
}
//修改xml 节点
private void updatexml()
{
XmlDocument xmldoc = new XmlDocument();
//加载xml文件
xmldoc.Load(@"E:\Test\Test\tt.xml");
//查找到ID=2的节点,删除book 下面的子节点,最后会留下一个空的<book></book>
XmlNodeList nodelist = xmldoc.SelectNodes("//Books/Book[@ID=3]");//需了解xpath
foreach (XmlNode n in nodelist)
{
XmlElement xe = (XmlElement)n;//XmlElement继承XmlNode
//将属性 修改为13
xe.SetAttribute("ID","13");
//查找title节点
XmlNode nn = n.SelectSingleNode("Title");
nn.InnerText = "C#从入门到精通";
}
//保存
xmldoc.Save(@"E:\Test\Test\tt.xml");
}
操作节点还有CDATA
需要操作的XML文件:
<Info>
<Link><![CDATA[<a href="http://www.52taiqiu.com">52台球网</a>]]></Link>
</Info>
修改Link中的值
XmlDocument xmldoc = new XmlDocument();
//加载xml文件
xmldoc.Load(@"E:\Test\Test\测试.xml");
XmlNode nameNode = xmldoc.SelectSingleNode("/Info/Link");
nameNode.InnerText = "";//如果是修改,需要把原先的值清空。
nameNode.AppendChild(xmldoc.CreateCDataSection("<a href=\"http://www.52taiqiu.com\">52台球网</a>"));
xmldoc.Save(@"E:\Test\Test\测试.xml");
xml文件
<?xml version="1.0" encoding="utf-8"?>
<Books>
<Book ID="1">
<Title>C#入门经典</Title>
<Price>95.00</Price>
</Book>
<Book ID="13">
<Title>C#从入门到精通</Title>
<Price>145.00</Price>
</Book>
<Book ID="4">
<Title>Java高级编程</Title>
<Price>165.00</Price>
</Book>
</Books>
//添加xml节点
private void addxml()
{
XmlDocument xmldoc = new XmlDocument();
//加载xml文件
xmldoc.Load(@"E:\Test\Test\tt.xml");
//查找 根节点 Books
XmlNode root = xmldoc.SelectSingleNode("Books");
//创建 子节点 Book
XmlElement book = xmldoc.CreateElement("Book");
book.SetAttribute("ID", "2");//设置子节点属性
//创建 Book 子节点 Title
XmlElement title = xmldoc.CreateElement("Title");
title.InnerText = "C#高级编程";
//title 节点 添加到 root
book.AppendChild(title);
//创建 Book 子节点 Price
XmlElement price = xmldoc.CreateElement("Price");
price.InnerText = "145.00";
//price 节点 添加到 root
book.AppendChild(price);
//最后把book 节点添加到root
root.AppendChild(book);
//保存
xmldoc.Save(@"E:\Test\Test\tt.xml");
}
//删除xml 节点
private void deletexml()
{
XmlDocument xmldoc = new XmlDocument();
//加载xml文件
xmldoc.Load(@"E:\Test\Test\tt.xml");
/*
//查找到ID=2的节点,删除book 下面的子节点,最后会留下一个空的<book></book>
XmlNodeList nodelist = xmldoc.SelectNodes("//Books/Book[@ID=2]");//需了解xpath
foreach (XmlNode n in nodelist)
{
XmlElement xe = (XmlElement)n;
//删除属性
xe.RemoveAllAttributes();
//删除节点
xe.RemoveAll();
}
*/
//删除 book=2 节点(包括book 节点)
XmlNodeList nodelist = xmldoc.SelectNodes("//Books/Book[@ID=2]");//需了解xpath
foreach (XmlNode n in nodelist)
{
n.ParentNode.RemoveChild(n);
}
//保存
xmldoc.Save(@"E:\Test\Test\tt.xml");
}
//修改xml 节点
private void updatexml()
{
XmlDocument xmldoc = new XmlDocument();
//加载xml文件
xmldoc.Load(@"E:\Test\Test\tt.xml");
//查找到ID=2的节点,删除book 下面的子节点,最后会留下一个空的<book></book>
XmlNodeList nodelist = xmldoc.SelectNodes("//Books/Book[@ID=3]");//需了解xpath
foreach (XmlNode n in nodelist)
{
XmlElement xe = (XmlElement)n;//XmlElement继承XmlNode
//将属性 修改为13
xe.SetAttribute("ID","13");
//查找title节点
XmlNode nn = n.SelectSingleNode("Title");
nn.InnerText = "C#从入门到精通";
}
//保存
xmldoc.Save(@"E:\Test\Test\tt.xml");
}
操作节点还有CDATA
需要操作的XML文件:
<Info>
<Link><![CDATA[<a href="http://www.52taiqiu.com">52台球网</a>]]></Link>
</Info>
修改Link中的值
XmlDocument xmldoc = new XmlDocument();
//加载xml文件
xmldoc.Load(@"E:\Test\Test\测试.xml");
XmlNode nameNode = xmldoc.SelectSingleNode("/Info/Link");
nameNode.InnerText = "";//如果是修改,需要把原先的值清空。
nameNode.AppendChild(xmldoc.CreateCDataSection("<a href=\"http://www.52taiqiu.com\">52台球网</a>"));
xmldoc.Save(@"E:\Test\Test\测试.xml");
相关文章推荐
- CDATA C#操作XML(无命名空间),添加/删除/编辑节点
- C# 生成 添加 修改 删除 XML节点操作
- C#中对 XML节点进行添加,删除,查找和删除操作
- C#中对 XML节点进行添加,删除,查找和删除操作
- C#中对 XML节点进行添加,删除,查找和删除操作
- 【原创】C#操作XML(带命名空间)
- C#中操作XML (节点添加,修改,删除完整版)
- C#中对 XML节点进行添加,删除,查找和删除操作
- C#中对 XML节点进行添加,删除,查找和删除操作
- c#对xml多属性节点的增加,删除,修改操作源码
- C# XML 添加,修改,删除Xml节点
- c#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)
- C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页
- C# XML 添加,修改,删除Xml节点
- C#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)【转载】
- C# 添加,修改,删除Xml节点
- C#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)
- C#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)
- 这是一个关于XML文档的操作管理器XMLHelper类,类中包括XML文档的创建,文档节点和属性的读取,添加,修改,删除的方法功能的实现
- C# 添加,修改,删除Xml节点