测试一下XElement
类和XDocument
的一些属性和方法。自己多注意看下重载。
一个Test.xml
文档如下:
1 | <?xml version="1.0" encoding="utf-8"?> |
Root 属性
1 | XDocument xDocTest = XDocument.Load("Test.xml"); |
直接转字符串,是按原样输出。当然,没有前面那个属性了:
1 | <Person> |
也可以直接按下面加载Root
属性:
1 | XElement rootElem = XElement.Load("Test.xml"); |
Nodes 方法
1 | XDocument xDocTest = XDocument.Load("Test.xml"); |
输出:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22<Name>孙悟空</Name>
<Age>500</Age>
<Sex>男</Sex>
<Dog>
<Name>小黑</Name>
<Age>9</Age>
</Dog>
<Dog>
<Name>小黄</Name>
<Age>10</Age>
</Dog>
<Good>100</Good>
<Dog>
<Name>小辉</Name>
<Age>15</Age>
</Dog>
返回的是object
类型的集合,都是下一级的子节点。
Elements 方法
还要重载:1
public IEnumerable<XElement> Elements(XName name);
因为和上面是继承关系,所以差不多。
1 | XDocument xDocTest = XDocument.Load("Test.xml"); |
输出:
1 | <Name>孙悟空</Name> |
返回的是XElement
类型的集合,都是下一级的子节点。
看看重载,加一个XName
之Dog
:
1 | XDocument xDocTest = XDocument.Load("Test.xml"); |
输出:
1 | <Dog> |
可见,能查询到所有的Dog
节点。
XElement 方法
这个是返回第一个符号的节点。
1 | XDocument xDocTest = XDocument.Load("Test.xml"); |
输出:
1 | <Dog> |
Descendsants 方法
1 | XDocument xDocTest = XDocument.Load("Test.xml"); |
看下效果,全部输出来了。节点,子节点:
1 | <Name>孙悟空</Name> |
DescendantNodes 方法
1 | XDocument xDocTest = XDocument.Load("Test.xml"); |
效果是这样的:
1 | <Name>孙悟空</Name> |
DescendantsAndSelf 方法
注意看重载,还可以指定节点XName
名称。
1 | XDocument xDocTest = XDocument.Load("Test.xml"); |
效果:
1 | <Person> |
Ancestors 方法
1 | XDocument xDocTest = XDocument.Load("Test.xml"); |
效果:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23<Dog>
<Name>小黑</Name>
<Age>9</Age>
</Dog>
<Person>
<Name>孙悟空</Name>
<Age>500</Age>
<Sex>男</Sex>
<Dog>
<Name>小黑</Name>
<Age>9</Age>
</Dog>
<Dog>
<Name>小黄</Name>
<Age>10</Age>
</Dog>
<Good>100</Good>
<Dog>
<Name>小辉</Name>
<Age>15</Age>
</Dog>
</Person>
AncestorsAndSelf 方法
1 | XDocument xDocTest = XDocument.Load("Test.xml"); |
效果:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25<Name>小黑</Name>
<Dog>
<Name>小黑</Name>
<Age>9</Age>
</Dog>
<Person>
<Name>孙悟空</Name>
<Age>500</Age>
<Sex>男</Sex>
<Dog>
<Name>小黑</Name>
<Age>9</Age>
</Dog>
<Dog>
<Name>小黄</Name>
<Age>10</Age>
</Dog>
<Good>100</Good>
<Dog>
<Name>小辉</Name>
<Age>15</Age>
</Dog>
</Person>
它包含了自己。
Parent 属性
1 | XDocument xDocTest = XDocument.Load("Test.xml"); |
效果:1
2
3
4<Dog>
<Name>小黑</Name>
<Age>9</Age>
</Dog>
参考:《C#图解教程》P383