LinqToXml
2009-04-07 09:35
316 查看
1.创建Xml树
<person id="1">
<name>Gaby</name>
<age>12</age>
<address>GuangZhou</address>
</person>
<person id="2">
<name>Bill</name>
<age>33</age>
<address>USA</address>
</person>
<person id="3">
<name>BiLy</name>
<age>19</age>
<address>HuNan</address>
</person>
如果要创建如上的XML树:
代码示例:
XElement xmlTree = new XElement("Root",
new XElement("person", new XElement("name", "Gaby"),
new XElement("age",18),
new XElement("address","GuangZhou")),
new XElement("person", new XElement("name", "Lily"),
new XElement("age",20),
new XElement("address","USA")),
new XElement("person", new XElement("name", "Bill"),
new XElement("age",55),
new XElement("address","English"))
);
foreach (var item in xmlTree.Elements())
{
Console.WriteLine(item);
}
输出结果:
![](http://images.cnblogs.com/cnblogs_com/ycdx2001/1.jpg)
2.读取XML文件
有以下XML文件:path:D:\NetDemo\LinqToXml\LinqToXml\XMLFile.xml
<?xml version="1.0" encoding="utf-8" ?>
<persons>
<person id="1">
<name>Gaby</name>
<age>16</age>
<address>GuangZhou</address>
</person>
<person id="2">
<name>Bill</name>
<age>33</age>
<address>USA</address>
</person>
<person id="3">
<name>BiLy</name>
<age>19</age>
<address>HuNan</address>
</person>
<person id="4">
<name>James</name>
<age>16</age>
<address>English</address>
</person>
</persons>
读取方法一:
XElement xml = XElement.Load(@"D:"NetDemo"LinqToXml"LinqToXml"XMLFile.xml");
Console.WriteLine("读取XML...");
foreach (var item in xml.Elements("person"))
{
Console.WriteLine(item.Element("name").Value+""t"
+item.Element("age").Value+""t"
+item.Element("address").Value);
}
读取方法二:(查询表达式)
var persons = from p in xml.Elements("person")
select new
{
Name = p.Element("name").Value,
Age = p.Element("age").Value,
Address = p.Element("address").Value
};
Console.WriteLine("读取XML...");
foreach (var item in persons)
{
Console.WriteLine(item.Name+"\t"+item.Age+"\t"+item.Address);
}
读取方法三:(lambada表达式)
var persons = xml.Elements("person").Select(p => new{
Id=p.Attribute("id").Value, //读取属性
Name = p.Element("name").Value,
Age = p.Element("age").Value,
Address = p.Element("address").Value
}
);
foreach (var item in persons)
{
Console.WriteLine(item.Name + ""t" + item.Age + ""t" + item.Address);
}
输出结果(相同):
<person id="1">
<name>Gaby</name>
<age>12</age>
<address>GuangZhou</address>
</person>
<person id="2">
<name>Bill</name>
<age>33</age>
<address>USA</address>
</person>
<person id="3">
<name>BiLy</name>
<age>19</age>
<address>HuNan</address>
</person>
如果要创建如上的XML树:
代码示例:
XElement xmlTree = new XElement("Root",
new XElement("person", new XElement("name", "Gaby"),
new XElement("age",18),
new XElement("address","GuangZhou")),
new XElement("person", new XElement("name", "Lily"),
new XElement("age",20),
new XElement("address","USA")),
new XElement("person", new XElement("name", "Bill"),
new XElement("age",55),
new XElement("address","English"))
);
foreach (var item in xmlTree.Elements())
{
Console.WriteLine(item);
}
输出结果:
![](http://images.cnblogs.com/cnblogs_com/ycdx2001/1.jpg)
2.读取XML文件
有以下XML文件:path:D:\NetDemo\LinqToXml\LinqToXml\XMLFile.xml
<?xml version="1.0" encoding="utf-8" ?>
<persons>
<person id="1">
<name>Gaby</name>
<age>16</age>
<address>GuangZhou</address>
</person>
<person id="2">
<name>Bill</name>
<age>33</age>
<address>USA</address>
</person>
<person id="3">
<name>BiLy</name>
<age>19</age>
<address>HuNan</address>
</person>
<person id="4">
<name>James</name>
<age>16</age>
<address>English</address>
</person>
</persons>
读取方法一:
XElement xml = XElement.Load(@"D:"NetDemo"LinqToXml"LinqToXml"XMLFile.xml");
Console.WriteLine("读取XML...");
foreach (var item in xml.Elements("person"))
{
Console.WriteLine(item.Element("name").Value+""t"
+item.Element("age").Value+""t"
+item.Element("address").Value);
}
读取方法二:(查询表达式)
var persons = from p in xml.Elements("person")
select new
{
Name = p.Element("name").Value,
Age = p.Element("age").Value,
Address = p.Element("address").Value
};
Console.WriteLine("读取XML...");
foreach (var item in persons)
{
Console.WriteLine(item.Name+"\t"+item.Age+"\t"+item.Address);
}
读取方法三:(lambada表达式)
var persons = xml.Elements("person").Select(p => new{
Id=p.Attribute("id").Value, //读取属性
Name = p.Element("name").Value,
Age = p.Element("age").Value,
Address = p.Element("address").Value
}
);
foreach (var item in persons)
{
Console.WriteLine(item.Name + ""t" + item.Age + ""t" + item.Address);
}
输出结果(相同):
![](http://images.cnblogs.com/cnblogs_com/ycdx2001/2.jpg)
相关文章推荐
- LINQ to XML操作Xml文档
- [代码]使用XSD验证XML示例1(LINQ to XML)
- 步步为营VS 2008 + .NET 3.5(14) - XLINQ(LINQ to XML)之针对XML文件的添加、查询、更新和删除
- LINQ TO XML(创建XML文档)
- linq to xml(删除)
- Linq To Xml 备忘录3(使用Namespace的查询)
- 使用Dom与Linq to Xml
- linq to xml操作XML
- LINQ To XML 入门(3)
- Linq To Xml上手(1) Descendants、Elements遍历节点
- 使用Python读取TestTrack记录- Part3 动态生成Linq to xml查询语句筛选条件
- C#基础精华06(Linq To XML,读取xml文件,写入xml)
- LINQ to XML 简单的小例子
- linq to xml查询绑定GridView
- C#新手入门代码 LINQ TO XML xattribute的用法示例
- LINQ TO XML 修改 app.config
- Linq To Xml 创建修改xml文档
- Simple example for Linq To XML
- C# 中的默认命名空间的范围 (LINQ to XML)