C# Linq Xml 简单测试

C# Linq 真的很强大啊!简单的测试下。

创建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
XDocument xDoc = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement("test",
new XElement("person",
new XElement("name", "小明"),
new XElement("age", "8")),
new XElement("person",
new XElement("name", "小华"),
new XElement("age", "9")),
new XElement("sum", "2")
)
);

xDoc.Save("Test.xml");

通过参数数组,类似结构的缩进,直接创建了xml文档。

xml:

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<test>
<person>
<name>小明</name>
<age>8</age>
</person>
<person>
<name>小华</name>
<age>9</age>
</person>
<sum>2</sum>
</test>

读取

1
2
3
XElement file = XElement.Load("Test.xml");
XElement xiaoming = file.Descendants("person")
.Where(x => x.Element("name").Value == "小明").SingleOrDefault();

xiaoming.ToString()直接读出:

1
2
3
4
<person>
<name>小明</name>
<age>8</age>
</person>

如果直接读取xioamingvalue值会输出多少?

它会把它下面节点的value值全部读出来:

1
小明8

我猜它应该是个结果集序列。

First,FirstOrDefault,Single,SingleOrDefault 有什么不一样?

SingleOrDefault 含有多个元素的时候会抛异常。


下面两片博文可以参考:

c#操作符 ??和First,FirstOrDefault,Single,SingleOrDefault。

c# XElement XML操作总结。

感谢支持!