网站首页 > 开源技术 正文
摘要
在使用LINQ to XML时需要添加System.Xml.Linq.dll的引用。
- XElement类 表示XML元素,它是XContainer类的派生类,而XContainer类又派生于XNode类。一个元素就是一个节点。
- XElement是LINQ to XML最重要最基本的类之一,它包含所有创建和操作XML元素所必需的功能。通过它可以创建元素,添加和修改元素的属性,操作元素的内容等。
- XAttribute类 用来处理属性,属性是与元素相关联的名称/值对。
- XDocument类 提供了处理有效XML文档的方法,包括声明、注释和处理指令。XDocument类派生自XContainer类,可以有子节点。XML标准限值XDocument对象只包含单个XElement子节点,此节点作为根节点或跟元素。
正文
创建一个XML
private void btnCreateXml_Click(object sender, EventArgs e)
{
XElement xml = new XElement("Persons");
xml.Add(new XElement("Person"
, new XElement("Name", "刘备")
, new XElement("Age", "40")));
xml.Add(new XElement("Person"
, new XElement("Name", "关羽")
, new XElement("Age", "35")));
xml.Add(new XElement("Person"
, new XElement("Name", "张飞")
, new XElement("Age", "32")));
xml.Save("./1.xml");
}
采用Ling生成xml
XElement xml = new XElement("Heros",
from hero in heroes
select new XElement("hero",
new XAttribute("Name", hero.Name),
new XAttribute("Age", hero.Age)
));
xml.Save("./hero.xml");
生成的xml
<?xml version="1.0" encoding="utf-8"?>
<Heros>
<hero Name="张飞" Age="38" />
<hero Name="刘备" Age="40" />
<hero Name="关羽" Age="39" />
<hero Name="曹操" Age="45" />
<hero Name="孙权" Age="31" />
</Heros>
遍历
private void btnView_Click(object sender, EventArgs e)
{
XDocument xdoc=new XDocument();
xdoc = XDocument.Parse(File.ReadAllText("./1.xml"));
var ret = xdoc.Element("Persons").Descendants();
foreach (var item in ret)
{
lstXml.Items.Add(item.Name+" "+item.Value);
}
}
添加一个节点
private void btnAdd_Click(object sender, EventArgs e)
{
XDocument xdoc = new XDocument();
xdoc = XDocument.Parse(File.ReadAllText("./1.xml"));
xdoc.Element("Persons").Add(new XElement("Person"
,new XElement("Name","曹操")
, new XElement("Age", 50)
));
var ret = xdoc.Element("Persons").Descendants();
foreach (var item in ret)
{
lstXml.Items.Add(item.Name + " " + item.Value);
}
}
删除一个节点
private void btnDelete_Click(object sender, EventArgs e)
{
var elements = from x in xml.Elements("Person")
where x.Element("Name").Value=="张飞"
select x;
elements.First().Remove();
var ret = from x in xml.Elements("Person")
select x;
foreach (var item in ret)
{
lstXml.Items.Add(item.Name + " " + item.Value);
}
}
猜你喜欢
- 2024-09-10 上了这么多年的班,你们知道doc和docx有什么区别?
- 2024-09-10 天天用Word DOC文件与DOCX文件“傻傻分不清”
- 2024-09-10 告别文件格式困扰!doc与docx大揭秘
- 2024-09-10 python读取当当首页的全部商品分类
- 2024-09-10 接私活利器丨X-SpringBoot轻量级的Java快速开发平台,源码分享
- 2024-09-10 Elasticsearch v7.x 集群最佳实践(Best practices)和核心概念
- 2024-09-10 X公司生产车间绩效考核制度.doc(生产企业车间绩效考核标准)
- 2024-09-10 《黑神话:悟空》现已解锁可玩,多家厂商推出联名款显卡
- 2024-09-10 阿里推出全新升级的DocOwl2文档理解LLM,性能飞跃提升
- 2024-09-10 XQuery编程 FLWOR + HTML(html编程技巧)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)