Linq to XML同样是对原C#访问XML文件的方法的封装,简化了用xpath进行xml的查询以及增加,修改,删除xml元素的操作。

LINQ to XML 三个最重要类:XElementXAttributeXDocument

首先我们先介绍这三个类的基本属性和方法,然后再实现Linq to XML的 增删改查。

1.XDocument

构造函数

名称 说明
XDocument() 初始化 XDocument 类的新实例。
XDocument(Object[]) 使用指定的内容初始化 XDocument 类的新实例。
XDocument(XDocument) 从现有的 XDocument 对象初始化 XDocument 类的新实例。
XDocument(XDeclaration, Object[]) 用指定的 XDeclaration 和内容初始化 XDocument 类的新实例。

属性

名称 说明
BaseUri 获取此 XObject 的基 URI。 (继承自 XObject。)
Declaration 获取或设置此文档的 XML 声明。
Document 获取此 XObject 的 XDocument。 (继承自 XObject。)
DocumentType 获取此文档的文档类型定义 (DTD)。
FirstNode 获取此节点的第一个子节点。 (继承自 XContainer。)
LastNode 获取此节点的最后一个子节点。 (继承自 XContainer。)
NextNode 获取此节点的下一个同级节点。 (继承自 XNode。)
NodeType 获取此节点的节点类型。 (重写 XObject.NodeType。)
Parent 获取此 XObject 的父级 XElement。 (继承自 XObject。)
PreviousNode 获取此节点的上一个同级节点。 (继承自 XNode。)
Root 获取此文档的 XML 树的根元素。

方法

名称 说明
Add(Object) 将指定的内容添加为此 XContainer 的子级。 (继承自 XContainer。)
Add(Object[]) 将指定的内容添加为此 XContainer 的子级。 (继承自 XContainer。)
AddAfterSelf(Object) 紧跟在此节点之后添加指定的内容。 (继承自 XNode。)
AddAfterSelf(Object[]) 紧跟在此节点之后添加指定的内容。 (继承自 XNode。)
AddAnnotation 将对象添加到此 XObject 的批注列表。 (继承自 XObject。)
AddBeforeSelf(Object) 紧邻此节点之前添加指定的内容。 (继承自 XNode。)
AddBeforeSelf(Object[]) 紧邻此节点之前添加指定的内容。 (继承自 XNode。)
AddFirst(Object) 将指定的内容作为此文档或元素的第一个子级添加。 (继承自 XContainer。)
AddFirst(Object[]) 将指定的内容作为此文档或元素的第一个子级添加。 (继承自 XContainer。)
Ancestors() 返回此节点的上级元素的集合。 (继承自 XNode。)
Ancestors(XName) 返回此节点的经过筛选的上级元素的集合。 集合中只包括具有匹配 XName 的元素。 (继承自 XNode。)
Annotation(Type) 从此 XObject 获取指定类型的第一个批注对象。 (继承自 XObject。)
Annotation<T>() 从此 XObject 获取指定类型的第一个批注对象。 (继承自 XObject。)
Annotations(Type) 获取此 XObject 的指定类型的批注集合。 (继承自 XObject。)
Annotations<T>() 获取此 XObject 的指定类型的批注集合。 (继承自 XObject。)
CreateReader() 创建此节点的 XmlReader。 (继承自 XNode。)
CreateReader(ReaderOptions) 使用 readerOptions 参数指定的选项创建 XmlReader。 (继承自 XNode。)
CreateWriter 创建可用于将节点添加至 XContainer 的 XmlWriter。 (继承自 XContainer。)
DescendantNodes 按文档顺序返回此文档或元素的子代节点集合。 (继承自 XContainer。)
Descendants() 按文档顺序返回此文档或元素的子代元素集合。 (继承自 XContainer。)
Descendants(XName) 按文档顺序返回此文档或元素的经过筛选的子代元素集合。 集合中只包括具有匹配 XName 的元素。 (继承自XContainer。)
Element 获取具有指定 XName 的第一个(按文档顺序)子元素。 (继承自 XContainer。)
Elements() 按文档顺序返回此元素或文档的子元素集合。 (继承自 XContainer。)
Elements(XName) 按文档顺序返回此元素或文档的经过筛选的子元素集合。 集合中只包括具有匹配 XName 的元素。 (继承自XContainer。)
ElementsAfterSelf() 按文档顺序返回此节点后的同级元素集合。 (继承自 XNode。)
ElementsAfterSelf(XName) 按文档顺序返回此节点后经过筛选的同级元素的集合。 集合中只包括具有匹配 XName 的元素。 (继承自 XNode。)
ElementsBeforeSelf() 按文档顺序返回此节点前的同级元素集合。 (继承自 XNode。)
ElementsBeforeSelf(XName) 按文档顺序返回此节点前经过筛选的同级元素的集合。 集合中只包括具有匹配 XName 的元素。 (继承自 XNode。)
Equals(Object) 确定指定的对象是否等于当前对象。 (继承自 Object。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetHashCode 作为默认哈希函数。 (继承自 Object。)
GetType 获取当前实例的 Type。 (继承自 Object。)
IsAfter 确定当前节点是否按文档顺序显示在指定节点之后。 (继承自 XNode。)
IsBefore 确定当前节点是否按文档顺序显示在指定节点之前。 (继承自 XNode。)
Load(Stream) 使用指定的流创建一个新的 XDocument 实例。
Load(String) 从文件创建新 XDocument。
Load(TextReader) 从 TextReader 创建新的 XDocument。
Load(XmlReader) 从 XmlReader 创建新 XDocument。
Load(Stream, LoadOptions) 使用指定流创建新的 XDocument 实例,也可以选择保留空白,设置基 URI 和保留行信息。
Load(String, LoadOptions) 从文件创建新 XDocument,还可以选择保留空白和行信息以及设置基 URI。
Load(TextReader, LoadOptions) 从 TextReader 创建新 XDocument,还可以选择保留空白和行信息以及设置基 URI。
Load(XmlReader, LoadOptions) 从 XmlReader 加载 XDocument,还可以选择设置基 URI 和保留行信息。
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
Nodes 按文档顺序返回此元素或文档的子节点集合。 (继承自 XContainer。)
NodesAfterSelf 按文档顺序返回此节点后的同级节点的集合。 (继承自 XNode。)
NodesBeforeSelf 按文档顺序返回此节点前的同级节点的集合。 (继承自 XNode。)
Parse(String) 从字符串创建新 XDocument。
Parse(String, LoadOptions) 从字符串创建新 XDocument,还可以选择保留空白和行信息以及设置基 URI。
Remove 从节点父级中删除此节点。 (继承自 XNode。)
RemoveAnnotations(Type) 从此 XObject 移除指定类型的批注。 (继承自 XObject。)
RemoveAnnotations<T>() 从此 XObject 移除指定类型的批注。 (继承自 XObject。)
RemoveNodes 从此文档或元素中移除子节点。 (继承自 XContainer。)
ReplaceNodes(Object) 使用指定的内容替换此文档或元素的子节点。 (继承自 XContainer。)
ReplaceNodes(Object[]) 使用指定的内容替换此文档或元素的子节点。 (继承自 XContainer。)
ReplaceWith(Object) 使用指定的内容替换此节点。 (继承自 XNode。)
ReplaceWith(Object[]) 使用指定的内容替换此节点。 (继承自 XNode。)
Save(Stream) 将此 XDocument 输出到指定的 Stream。
Save(String) 序列化此 XDocument 到文件,如果该文件存在,则覆盖现有的文件。
Save(TextWriter) 将此 XDocument 序列化为 TextWriter。
Save(XmlWriter) 将此 XDocument 序列化为 XmlWriter。
Save(Stream, SaveOptions) 将此 XDocument 输出到指定的 Stream,(可选)并指定格式设置行为。
Save(String, SaveOptions) 将此 XDocument 序列化为文件,还可以选择禁用格式设置。
Save(TextWriter, SaveOptions) 将此 XDocument 序列化为 TextWriter,还可以选择禁用格式设置。
ToString() 返回此节点的缩进 XML。 (继承自 XNode。)
ToString(SaveOptions) 返回此节点的 XML,还可以选择禁用格式设置。 (继承自 XNode。)
WriteTo 将此文档写入 XmlWriter。 (重写 XNode.WriteTo(XmlWriter)。)

2.XElement

构造函数

名称 说明
XElement(XElement) 从其他 XElement 对象初始化 XElement 类的新实例。
XElement(XName) 用指定的名称初始化 XElement 类的新实例。
XElement(XStreamingElement) 从 XStreamingElement 对象初始化 XElement 类的新实例。
XElement(XName, Object) 用指定的名称和内容初始化 XElement 类的新实例。
XElement(XName, Object[]) 用指定的名称和内容初始化 XElement 类的新实例。


属性

名称 说明
BaseUri 获取此 XObject 的基 URI。 (继承自 XObject。)
Document 获取此 XObject 的 XDocument。 (继承自 XObject。)
EmptySequence 获取空的元素集合。
FirstAttribute 获取此元素的第一个属性。
FirstNode 获取此节点的第一个子节点。 (继承自 XContainer。)
HasAttributes 获取一个值,该值指示此元素是否至少具有一个属性。
HasElements 获取一个值,该值指示此元素是否至少具有一个子元素。
IsEmpty 获取一个值,该值指示此元素是否不包含内容。
LastAttribute 获取此元素的最后一个属性。
LastNode 获取此节点的最后一个子节点。 (继承自 XContainer。)
Name 获取或设置此元素的名称。
NextNode 获取此节点的下一个同级节点。 (继承自 XNode。)
NodeType 获取此节点的节点类型。 (重写 XObject.NodeType。)
Parent 获取此 XObject 的父级 XElement。 (继承自 XObject。)
PreviousNode 获取此节点的上一个同级节点。 (继承自 XNode。)
Value 获取或设置此元素的串连文本内容。

方法

名称 说明
Add(Object) 将指定的内容添加为此 XContainer 的子级。 (继承自 XContainer。)
Add(Object[]) 将指定的内容添加为此 XContainer 的子级。 (继承自 XContainer。)
AddAfterSelf(Object) 紧跟在此节点之后添加指定的内容。 (继承自 XNode。)
AddAfterSelf(Object[]) 紧跟在此节点之后添加指定的内容。 (继承自 XNode。)
AddAnnotation 将对象添加到此 XObject 的批注列表。 (继承自 XObject。)
AddBeforeSelf(Object) 紧邻此节点之前添加指定的内容。 (继承自 XNode。)
AddBeforeSelf(Object[]) 紧邻此节点之前添加指定的内容。 (继承自 XNode。)
AddFirst(Object) 将指定的内容作为此文档或元素的第一个子级添加。 (继承自 XContainer。)
AddFirst(Object[]) 将指定的内容作为此文档或元素的第一个子级添加。 (继承自 XContainer。)
Ancestors() 返回此节点的上级元素的集合。 (继承自 XNode。)
Ancestors(XName) 返回此节点的经过筛选的上级元素的集合。 集合中只包括具有匹配 XName 的元素。 (继承自 XNode。)
AncestorsAndSelf() 返回元素集合,其中包含此元素及其上级。
AncestorsAndSelf(XName) 返回经过筛选的元素集合,其中包含此元素及其上级。 集合中只包括具有匹配 XName 的元素。
Annotation(Type) 从此 XObject 获取指定类型的第一个批注对象。 (继承自 XObject。)
Annotation<T>() 从此 XObject 获取指定类型的第一个批注对象。 (继承自 XObject。)
Annotations(Type) 获取此 XObject 的指定类型的批注集合。 (继承自 XObject。)
Annotations<T>() 获取此 XObject 的指定类型的批注集合。 (继承自 XObject。)
Attribute 返回具有指定 XName 的此 XElement 的 XAttribute。
Attributes() 返回此元素的属性集合。
Attributes(XName) 返回经过筛选的此元素的属性集合。 集合中只包括具有匹配 XName 的元素。
CreateReader() 创建此节点的 XmlReader。 (继承自 XNode。)
CreateReader(ReaderOptions) 使用 readerOptions 参数指定的选项创建 XmlReader。 (继承自 XNode。)
CreateWriter 创建可用于将节点添加至 XContainer 的 XmlWriter。 (继承自 XContainer。)
DescendantNodes 按文档顺序返回此文档或元素的子代节点集合。 (继承自 XContainer。)
DescendantNodesAndSelf 返回节点的集合,而这些节点包含此元素以及此元素的所有子代节点,并将它们按文档顺序排列。
Descendants() 按文档顺序返回此文档或元素的子代元素集合。 (继承自 XContainer。)
Descendants(XName) 按文档顺序返回此文档或元素的经过筛选的子代元素集合。 集合中只包括具有匹配 XName 的元素。 (继承自XContainer。)
DescendantsAndSelf() 返回元素的集合,而这些元素包含此元素以及此元素的所有子代元素,并按文档顺序排列它们。
DescendantsAndSelf(XName) 返回经过筛选的元素集合,这些元素包含此元素以及此元素的所有子代元素,并按文档顺序排列它们。 集合中只包括具有匹配 XName 的元素。
Element 获取具有指定 XName 的第一个(按文档顺序)子元素。 (继承自 XContainer。)
Elements() 按文档顺序返回此元素或文档的子元素集合。 (继承自 XContainer。)
Elements(XName) 按文档顺序返回此元素或文档的经过筛选的子元素集合。 集合中只包括具有匹配 XName 的元素。 (继承自XContainer。)
ElementsAfterSelf() 按文档顺序返回此节点后的同级元素集合。 (继承自 XNode。)
ElementsAfterSelf(XName) 按文档顺序返回此节点后经过筛选的同级元素的集合。 集合中只包括具有匹配 XName 的元素。 (继承自 XNode。)
ElementsBeforeSelf() 按文档顺序返回此节点前的同级元素集合。 (继承自 XNode。)
ElementsBeforeSelf(XName) 按文档顺序返回此节点前经过筛选的同级元素的集合。 集合中只包括具有匹配 XName 的元素。 (继承自 XNode。)
Equals(Object) 确定指定的对象是否等于当前对象。 (继承自 Object。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetDefaultNamespace 获取此 XElement 的默认 XNamespace。
GetHashCode 作为默认哈希函数。 (继承自 Object。)
GetNamespaceOfPrefix 获取此 XElement 的与特定前缀关联的命名空间。
GetPrefixOfNamespace 获取与此 XElement 的命名空间关联的前缀。
GetType 获取当前实例的 Type。 (继承自 Object。)
IsAfter 确定当前节点是否按文档顺序显示在指定节点之后。 (继承自 XNode。)
IsBefore 确定当前节点是否按文档顺序显示在指定节点之前。 (继承自 XNode。)
Load(Stream) 使用指定的流创建一个新的 XElement 实例。
Load(String) 从文件加载 XElement。
Load(TextReader) 从 TextReader 加载 XElement。
Load(XmlReader) 从 XmlReader 加载 XElement。
Load(Stream, LoadOptions) 使用指定流创建新的 XElement 实例,也可以选择保留空白,设置基 URI 和保留行信息。
Load(String, LoadOptions) 从文件加载 XElement,还可以选择保留空白、设置基 URI 和保留行信息。
Load(TextReader, LoadOptions) 从 TextReader 加载 XElement,还可以选择保留空白和行信息。
Load(XmlReader, LoadOptions) 从 XmlReader 加载 XElement 时,可以选择保留空白、设置基 URI 和保留行信息。
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
Nodes 按文档顺序返回此元素或文档的子节点集合。 (继承自 XContainer。)
NodesAfterSelf 按文档顺序返回此节点后的同级节点的集合。 (继承自 XNode。)
NodesBeforeSelf 按文档顺序返回此节点前的同级节点的集合。 (继承自 XNode。)
Parse(String) 从包含 XML 的字符串加载 XElement。
Parse(String, LoadOptions) 从包含 XML 的字符串加载 XElement,还可以选择保留空白和行信息。
Remove 从节点父级中删除此节点。 (继承自 XNode。)
RemoveAll 从此 XElement 中移除节点和属性。
RemoveAnnotations(Type) 从此 XObject 移除指定类型的批注。 (继承自 XObject。)
RemoveAnnotations<T>() 从此 XObject 移除指定类型的批注。 (继承自 XObject。)
RemoveAttributes 移除此 XElement 的属性。
RemoveNodes 从此文档或元素中移除子节点。 (继承自 XContainer。)
ReplaceAll(Object) 使用指定的内容替换此元素的子节点和属性。
ReplaceAll(Object[]) 使用指定的内容替换此元素的子节点和属性。
ReplaceAttributes(Object) 使用指定的内容替换此元素的属性。
ReplaceAttributes(Object[]) 使用指定的内容替换此元素的属性。
ReplaceNodes(Object) 使用指定的内容替换此文档或元素的子节点。 (继承自 XContainer。)
ReplaceNodes(Object[]) 使用指定的内容替换此文档或元素的子节点。 (继承自 XContainer。)
ReplaceWith(Object) 使用指定的内容替换此节点。 (继承自 XNode。)
ReplaceWith(Object[]) 使用指定的内容替换此节点。 (继承自 XNode。)
Save(Stream) 将此 XElement 输出到指定的 Stream。
Save(String) 将此元素序列化为文件。
Save(TextWriter)

将此元素序列化为 TextWriter。

Save(XmlWriter) 将此元素序列化为 XmlWriter。
Save(Stream, SaveOptions) 将此 XElement 输出到指定的 Stream,(可选)并指定格式设置行为。
Save(String, SaveOptions) 将此元素序列化为文件,并可以选择禁用格式设置。
Save(TextWriter, SaveOptions) 将此元素序列化为 TextWriter,并可以选择禁用格式设置。
SetAttributeValue 设置属性的值、添加属性或移除属性。
SetElementValue 设置子元素的值、添加子元素或移除子元素。
SetValue 设置此元素的值。
ToString() 返回此节点的缩进 XML。 (继承自 XNode。)
ToString(SaveOptions) 返回此节点的 XML,还可以选择禁用格式设置。 (继承自 XNode。)
WriteTo 将此元素写入 XmlWriter。 (重写 XNode.WriteTo(XmlWriter)。)

3.XAttribute

构造函数

名称 说明
XAttribute(XAttribute) 从其他 XAttribute 对象初始化 XAttribute 类的新实例。
XAttribute(XName, Object) 从指定的名称和值初始化 XAttribute 类的新实例。


属性

名称 说明
BaseUri 获取此 XObject 的基 URI。 (继承自 XObject。)
Document 获取此 XObject 的 XDocument。 (继承自 XObject。)
EmptySequence 获取空的属性集合。
IsNamespaceDeclaration 确定此属性是否为命名空间声明。
Name 获取此属性 (Attribute) 的展开名称。
NextAttribute 获取父元素的下一个属性 (Attribute)。
NodeType 获取此节点的节点类型。 (重写 XObject.NodeType。)
Parent 获取此 XObject 的父级 XElement。 (继承自 XObject。)
PreviousAttribute 获取父元素的上一个属性 (Attribute)。
Value 获取或设置此属性的值。


方法

名称 说明
AddAnnotation 将对象添加到此 XObject 的批注列表。 (继承自 XObject。)
Annotation(Type) 从此 XObject 获取指定类型的第一个批注对象。 (继承自 XObject。)
Annotation<T>() 从此 XObject 获取指定类型的第一个批注对象。 (继承自 XObject。)
Annotations(Type) 获取此 XObject 的指定类型的批注集合。 (继承自 XObject。)
Annotations<T>() 获取此 XObject 的指定类型的批注集合。 (继承自 XObject。)
Equals(Object) 确定指定的对象是否等于当前对象。 (继承自 Object。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetHashCode 作为默认哈希函数。 (继承自 Object。)
GetType 获取当前实例的 Type。 (继承自 Object。)
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
Remove 从此属性的父元素中移除它。
RemoveAnnotations(Type) 从此 XObject 移除指定类型的批注。 (继承自 XObject。)
RemoveAnnotations<T>() 从此 XObject 移除指定类型的批注。 (继承自 XObject。)
SetValue 设置此属性的值。
ToString 将当前的 XAttribute 对象转换为字符串表示形式。 (重写 Object.ToString()。)

简单示例

1.创建XML

    XDocument doc = new XDocument(              ///创建XDocument类的实例
new XDeclaration("1.0", "utf-8", "yes"),///XML的声明,包括版本,编码,xml文件是否独立
new XElement("Books", ///添加根节点
new XElement("Book", ///添加一个节点
new XAttribute("BookID", ""),///添加属性BookID
new XElement("BookNo", ""), ///添加元素BookNo
new XElement("BookName", "Book 0001"),///添加元素BookName
new XElement("BookPrice", ""),///添加元素BookPrice
new XElement("BookRemark", "This is a book 0001")///添加元素BookRemark
)
)
);
///保存XML文件到指定地址
doc.Save(@"C:\Books.xml");

2.添加元素

    ///导入XML文件
XElement xe = XElement.Load(@"C:\Books.xml");
///创建一个新节点
XElement book1 = new XElement("Book",
new XAttribute("BookID", ""),
new XElement("BookNo", ""),
new XElement("BookName", "Book 0002"),
new XElement("BookPrice", ""),
new XElement("BookRemark", "This is a book 0002")
);
///添加节点到XML文件中,并保存
xe.Add(book1);
///创建一个新节点
XElement book2 = new XElement("Book",
new XAttribute("BookID", ""),
new XElement("BookNo", ""),
new XElement("BookName", "Book 0003"),
new XElement("BookPrice", ""),
new XElement("BookRemark", "This is a book 0003")
);
///添加节点到XML文件中,并保存
xe.Add(book2);
///创建一个新节点
XElement book3 = new XElement("Book",
new XAttribute("BookID", ""),
new XElement("BookNo", ""),
new XElement("BookName", "Book 0004"),
new XElement("BookPrice", ""),
new XElement("BookRemark", "This is a book 0004")
);
///添加节点到XML文件中
xe.Add(book3);
///保存到XML文件中
xe.Save(@"C:\Books.xml");

3.修改元素

    XElement xe = XElement.Load(@"C:\Books.xml");
///查询修改的元素
IEnumerable<XElement> element = from e in xe.Elements("Book")
where e.Attribute("BookID").Value == "xxx" //xxx指定的修改元素
select e;
///修改元素
if (element.Count() > )
{
XElement firstelement = element.First();
///设置新的属性
firstelement.SetAttributeValue("BookID", "new004");
///替换成新的节点
firstelement.ReplaceNodes(
new XElement("BookNo", "new0004"),
new XElement("BookName", "Book new0004"),
new XElement("BookPrice", ""),
new XElement("BookRemark", "This is a book new0004")
);
}
xe.Save(@"C:\Books.xml");

4.删除元素

    XElement xe = XElement.Load(@"C:\Books.xml");
///查询修改的元素
IEnumerable<XElement> element = from e in xe.Elements("Book")
where e.Attribute("BookID").Value == "xxx" //xxx 指定删除元素
select e;
///修改元素
if (element.Count() > )
{
XElement firstelement = element.First();
///删除此元素的所有节点和属性
firstelement.RemoveAll();
///删除此元素的属性
//firstelement.RemoveAttributes();
///删除此元素的子节点
//firstelement.RemoveNodes();
}
xe.Save(@"C:\Books.xml");

5.一些常用查询

    XElement xe = XElement.Load(@"C:\Books.xml");
//查询元素并排序
var elements = xe.Elements("Book")
.Where(e => Convert.ToInt32(e.Attribute("BookID").Value.Substring(e.Attribute("BookID").Value.Length - , )) > )
.OrderByDescending(e => (string)e.Element("BookName"))
.ToList();
//查询指定元素的子元素
var elements = xe.Elements("Book")
.Descendants("xxx") //xxx 指定元素
.ToList();
//查询指定属性的元素
var eAttribute = xe.Elements("Book")
.Where(e => (string)e.Attribute("BookID") == "xxx") //xxx 指定属性
.OrderBy(e => e.Element("BookID"))
.ToList();
//查询指定名称的元素
var elements = xe.Elements("Book")
.Where(e => (string)e.Element("BookName") == "xxx") //指定元素名称
.OrderBy(e => e.Element("BookID"))
.ToList();

到这里结束了,现在感觉LINQ to XML 是不是很简单啊,相信你会喜欢上Linq语法的。

本文只着重介绍了LINQ to XML 类的 XElement、XAttribute和XDocument三个类,当然还有其他的一些,这里就不作详细介绍了,如需查看请点此跳转到MSDN LINQ to XML 类概述

感谢您的阅读,如有任何建议请评论提出。

感觉还不错,请推荐下,谢谢。

LINQ to XML基本操作的更多相关文章

  1. linq to xml 基本操作

    使用XDocument类来进行简单的xml操作,用于软件参数的设置保存. using System; using System.Collections.Generic; using System.Li ...

  2. linq to xml学习

    http://www.cnblogs.com/greatverve/archive/2010/07/09/linq-to-xml-add-delete-update-query.html 记录一下,别 ...

  3. Linq学习笔记---Linq to Xml操作

    LINQ to XML的成员, 属性列表: 属性 说明 Document 获取此 XObject 的 XDocument  EmptySequence  获取空的元素集合  FirstAttribut ...

  4. LINQ to XML学习笔记

    一.XML基础知识 1.XML:可扩展标记语言 Extensible Markup Language ,提供了一种保存数据的格式,数据可以通过这种格式很容易地在不同的应用程序之间实现共享. 2.使用X ...

  5. 第六篇 -- LINQ to XML

    一.LINQ to XML常用成员 LINQ to XML的成员, 属性列表: 属性 说明 Document 获取此 XObject 的 XDocument  EmptySequence  获取空的元 ...

  6. LINQ系列:LINQ to XML类

    LINQ to XML由System.Xml.Linq namespace实现,该namespace包含处理XML时用到的所有类.在使用LINQ to XML时需要添加System.Xml.Linq. ...

  7. LINQ系列:LINQ to XML操作

    LINQ to XML操作XML文件的方法,如创建XML文件.添加新的元素到XML文件中.修改XML文件中的元素.删除XML文件中的元素等. 1. 创建XML文件 string xmlFilePath ...

  8. LINQ系列:LINQ to XML查询

    1. 读取XML文件 XDocument和XElement类都提供了导入XML文件的Load()方法,可以读取XML文件的内容,并转换为XDocument或XElement类的实例. 示例XML文件: ...

  9. Linq to Xml读取复杂xml(带命名空间)

    前言:xml的操作方式有多种,但要论使用频繁程度,博主用得最多的还是Linq to xml的方式,觉得它使用起来很方便,就用那么几个方法就能完成简单xml的读写.之前做的一个项目有一个很变态的需求:C ...

随机推荐

  1. mysql开通tcp远程连接

    1.登陆mysql: mysql -u root mysql 2.运行下面命令 UPDATE `mysql`.`user` SET `Host` = '%' WHERE `user`.`Host` = ...

  2. for of 与 for in 的区别

    遍历数组通常使用for循环,ES5的话也可以使用forEach,ES5具有遍历数组功能的还有map.filter.some.every.reduce.reduceRight等,只不过他们的返回结果不一 ...

  3. ubuntu连有线网 无法连接外网

    问题:连上网线后,有ip,但是无法访问外网. 我的解决方案是: .通过命令行ifconfig命令查看以太网(即网线插口)的名称,如下图,'enp3s0'是网线插口(Ethernet以太网): zhum ...

  4. np.random.randn()、np.random.rand()、np.random.randint()

    (1)np.random.randn()函数 语法: np.random.randn(d0,d1,d2……dn) 1)当函数括号内没有参数时,则返回一个浮点数: 2)当函数括号内有一个参数时,则返回秩 ...

  5. UNITY中的MOUSE点击事件的判断和AS3中的异同

    UNITY - 在UPDATE中轮询检测 Update() { if(Input.GetButton("Fire1") } AS3 - 事件监听 addEventListener. ...

  6. 【校招面试 之 C/C++】第9题 C++多态

    C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数.如果对象类型是派生类,就调用派生类的函数:如果对象类型是基类 ...

  7. 解决 listView gridView 与ScrollView嵌套时的冲突

    package com.xqx.fight; import android.app.Activity; import android.os.Bundle; import android.view.Me ...

  8. nginx 反向代理 apache 服务

    反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时 ...

  9. struts框架问题五之向值栈中保存数据

    5. 问题五: 向值栈保存数据 (主要针对root栈) > valueStack.push(Object obj); * push方法的底层调用root对象的push方法(把元素添加到0位置) ...

  10. 绘制3D的js库

      有哪些值得推荐的绘制3D的js库?   4 个回答 默认排序​ 草皮子 HTML5/GAME 4 人赞同了该回答 只用过three.js,所以推荐这个.不清楚你打算用来做什么,总的来说,得看你的运 ...