LINQ to XML 使用筆記 - 基本操作

2018-02-03 10:18:16来源:http://poychang.github.io/linq-to-xml-basic-usage/作者:Poy Chang人点击

分享

XML(eXtensible Markup Language) 可扩展标记语言常作为各种资讯交换用的通讯格式,例如用于 SOAP 通讯协定,其丰富的描述让资料资讯表达得更完整(当然资料本身也变得比较複杂些),.Net Team 提供了方便操作 XML 的工具 System.Xml.Linq 也就是 LINQ to XML,这篇介绍 LINQ to XML 的基本操作。


目录:


基本操作
建立 XML 档案
查询 XML 资料
修改 XML 资料
转换 XML 资料
验证 XML 资料
取得 CDATA 资料

系列文完整範例程式码请参考 poychang/Demo-Linq-To-Xml 。


LINQ to XML 类别

常见的 LINQ to XML 类别如下图:



XDocument 代表整份 XML 文件
XDeclaration 代表 XML 宣告,告用于宣告 XML 版本与文件的编码
XComment 代表 XML 注解
XElement 代表 XML 元素,内容可为资料或另一个 XML 元素
XAttribute 代表 XML 属性

更多 LINQ to XML 类别请参考 这份文件


基本操作

LINQ to XML 属于记忆体内操作 XML 资料,因此在做任何操作前,都必须先载入 XML 资料至记忆体中,使用 XDocuments.Load() 进行载入:


// 载入 sample.xml 档
XDocument xmlDocument = XDocuments.Load("sample.xml");

取得节点内特定单一元素,可使用 Element() ,若要取得节点内多元素,则使用 Elements() ,这里会取得 IEnumerable<XElement> 资料型别的列举资料:


// 取得单一元素
XElement element = xmlDocument.Element("Node");
// 取得多元素
IEnumerable<XElement> elements = xmlDocument.Elements("Nodes");

有时候 XML 元素会设定属性值,可使用 Attribute() 来取得属性值:


// 取得指定属性值
XAttribute att = ele.Attribute("AttributeName");

取得元素后,若要调用元素内所包含的值,可使用 Value 来取得:


XElement element = xmlDocument.Element("Node");
string value = element.Value;
注意事项

在使用 LINQ to XML 进行资料操作的时候,请随时注意会不会因为 XML 资料中没有该元素,造成 NullException。因此在此系列文的範例程式码 poychang/Demo-Linq-To-Xml 中,会用到很多 Null 条件运算子 ,用来测试是否为 Null,若为 Null 就不继续往下操作。


参考资料:


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台