LINQ to XML基本操作

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

LINQ to XML 三个最重要类:XElementXAttributeXDocument

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

1.XDocument

构造函数

     名称                            说明
    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。)
    GetDefaultNamespace                获取此 XElement 的默认 XNamespace。
    GetNamespaceOfPrefix            获取此 XElement 的与特定前缀关联的命名空间。
    GetPrefixOfNamespace            获取与此 XElement 的命名空间关联的前缀。
    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 和保留行信息。
    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)。)

2.XElement

构造函数

     名称                                说明
    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。)
    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 和保留行信息。
    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)。)

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。)
    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", "001"),///添加属性BookID
                new XElement("BookNo", "0001"), ///添加元素BookNo
                new XElement("BookName", "Book 0001"),///添加元素BookName
                new XElement("BookPrice", "40"),///添加元素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", "002"),
                       new XElement("BookNo", "0002"),
                       new XElement("BookName", "Book 0002"),
                       new XElement("BookPrice", "50"),
                       new XElement("BookRemark", "This is a book 0002")
        );
    ///添加节点到XML文件中,并保存
    xe.Add(book1);
    ///创建一个新节点
    XElement book2 = new XElement("Book",
                       new XAttribute("BookID", "003"),
                       new XElement("BookNo", "0003"),
                       new XElement("BookName", "Book 0003"),
                       new XElement("BookPrice", "30"),
                       new XElement("BookRemark", "This is a book 0003")
        );
    ///添加节点到XML文件中,并保存
    xe.Add(book2);
    ///创建一个新节点
    XElement book3 = new XElement("Book",
                       new XAttribute("BookID", "004"),
                       new XElement("BookNo", "0004"),
                       new XElement("BookName", "Book 0004"),
                       new XElement("BookPrice", "60"),
                       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() > 0)
    {
        XElement firstelement = element.First();
        ///设置新的属性
        firstelement.SetAttributeValue("BookID", "new004");
        ///替换成新的节点
        firstelement.ReplaceNodes(
                new XElement("BookNo", "new0004"),
                new XElement("BookName", "Book new0004"),
                new XElement("BookPrice", "45"),
                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() > 0)
    {
        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 - 1, 1)) > 1)
                         .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 类概述

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

赶紧还不错,请推荐下,谢谢。

时间: 2024-10-05 20:50:17

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

linq to xml 基本操作

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Linq; namespace linqXML { class Program { static void Main(string[] args) { XDocument doc = new XDocument(); XElement rt = new XElement("root"

Linq to XML的基本操作

1.构造具有属性的XML元素. 在Linq to XMl中XAttribute类表示一个XML元素的属性.任何一个XML元素(XElement)都包含一个XAttribute列表,用来表示它所包含的所有属性.同一个XML元素所包含的属性名不能相同. XAttribute 包含以下几个重载版本 public XAttribute(XName name, object value) public XAttribute(XAttribute other) public XAttribute(XName

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

LINQ to XML的成员, 属性列表: 属性 说明 Document 获取此 XObject 的 XDocument  EmptySequence  获取空的元素集合  FirstAttribute  获取此元素的第一个属性  FirstNode  获取此节点的第一个子节点  HasAttributes  获取一个值,该值指示此元素是否至少具有一个属性  HasElements  获取一个值,该值指示此元素是否至少具有一个子元素  IsEmpty  获取一个值,该值指示此元素是否不包含内容

24.C#LINQ TO XML(十二章12.3)

自己也写了那么多,但还有很多不懂,有点浮躁吧,但饭还是要吃啊,说说LINQ TO XML吧. LINQ TO XML位于System.Xml.Linq程序集,并且大多数类型位于System.Xml.Linq命名空间.该命名空间下几乎所有类型都以X为前缀;普通DOM API中的Element对应LINQ TO XML中的XElement.列举下都有哪些类型. XName:表示元素和特性的名称 XNamespace:表示XML的命名空间,通常是一个URL XObject:是XNode和XAttrib

LINQ to XML 编程基础

1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: 隐藏行号 复制代码 ?创建 XML public static void CreateDocument() { string path = @"d:\website"; XDocument xdoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), new XEle

XML读写利器XElement(Linq to xml)

年初公司绩效改革,在等最后通知,不知我有没理解错,感觉新版绩效最高会比原先最高拿到的奖金整整少一半... 还好同时也有调工资,加了一点.去年好像是年中整体调过一次,不知公司是一年调两次还是从今年开始改成年初调. 晚上去加班,处理一个数据交换,本想XML和实体直接互相转换,但XML结构太复杂,自动转换不理想,改用手工处理. 原先其它项目是用原始的XmlDocument,感觉不好用,写法也很不美观 网上说还有种XMLTextReader,像DataReader一样,向前只读的,从来没用过 以前有用过

C# 对XML基本操作总结

C# 对XML基本操作包括读取节点的数据,添加节点.读取节点属性,修改节点属性等.具体如下: XML文件:文件在MyDocument文件夹下 <?xml version="1.0" encoding="utf-8"?> <PersonF xmlns="" Name="(test)work hard work smart!"> <person Name="Person1">

Linq之Linq to XML

目录 写在前面 系列文章 linq to xml 总结 写在前面 在很多情况下,都可以见到使用xml的影子.例如,在 Web 上,在配置文件.Microsoft Office Word 文件(将word文档另存为xml文件,这也提供了一种通过操作xml,操作word的一种方式)以及数据库中,都可以看到 XML.而linq to xml提供了一种操作xml更便捷的方式. 系列文章 Linq之Lambda表达式初步认识 Linq之Lambda进阶 Linq之隐式类型.自动属性.初始化器.匿名类 Li

LINQ to XML(1)

LINQ to XML可以两种方式和XML配合使用.第一种方式是作为简化的XML操作API,第二种方式是使用LINQ查询工具.下面我使用的是第二种方式. 主要内容:用LINQ查询语句对XML文件里的数据进行筛选. 此方法优点: 1.我们可以使用单一语句自顶向下创建XML树. 2.我们可以使用包含树的XML文档在内存中创建并操作XML. 3.我们可以不适用Text子节点来创建和操作字符串节点. 4.一个最大的不同(改进)是,在搜索一个XML树时,不需要遍历它.相反只需要查询树并让它返回想要的结果.