最近没事做,刚来到一个新公司。写了一些处理xml的项目  就是把一些xml的数据处理后存储到数据库中。原本还是准备用原来的xml来写的。在群里有个人说,用linq to xml 好了,比较快捷。就看了下。现在写下心得。

1. linq to xml 的类主要用到的介绍:

XDocument 表示一个xml文档
XElement 表示一个元素
XAttricbute 表示一个xml属性
XComment 表示一个XML注释
XDeclaration 表示一个xml声明
XCData 表示一个CDATA文本节点

2.  创建一个新的xml文档  XDocument    创建一个XElement的可以去看下msdn中创建XElement的实例

        static void CreateFunctionalXmlDoc()
{
XDocument inventoryDoc =
new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XComment("Current Inventory of AutoLot"),
new XElement("Inventory",
new XElement("Car", new XAttribute("ID", ""),
new XElement("Color", "Green"),
new XElement("Make", "BMW"),
new XElement("PetName", "Stan")
),
new XElement("Car", new XAttribute("ID", ""),
new XElement("Color", "Pink"),
new XElement("Make", "Yugo"),
new XElement("PetName", "Melvin")
)
)
);
// Display the document and save to disk.
Console.WriteLine(inventoryDoc);
inventoryDoc.Save("SimpleInventory.xml");
}

显示xml内容为:

文件中xml内容为

2. 读取一个xml文档

在XDocument类和XElement类中,都可以找到一个load和Parse的两个方法 都是加载一个xml到内存中

这里我就贴一段  XDocument类的代码  其中load stream的类没有写,因为这个需要4.0以后的  vs2008最高只有3.5  所以我就空出来了。如果哪位大大愿意完善下记得发给我哈。

/// <summary>
/// 初始化xml信息
/// </summary>
/// <returns></returns>
public XDocument InitializeXMLData()
{
XDocument data = null;
if (!File.Exists((string)ob))
{
data = readxml(ob);
}
  else
            {
                data = XDocument.Load((string)ob);
            }
return data;
} #region 读取xml 支持 string ,TextReader,XmlReader 4以后支持 Stream
/// <summary>
/// 读取xml 支持 string ,TextReader,XmlReader 4以后支持 Stream
/// </summary>
/// <param name="ob"></param>
/// <returns></returns>
public XDocument readxml(object ob)
{
//Type t = ob.GetType();
XDocument xmldoc = null;
if (ob == null) ;
else if (ob is string)
xmldoc = readxml((string)ob);
else if (ob is Stream)
xmldoc = readxml((Stream)ob);
else if (ob is TextReader)
xmldoc = readxml((TextReader)ob);
else if (ob is XmlReader)
xmldoc = readxml((XmlReader)ob);
return xmldoc;
} /// <summary>
/// 读取xml
/// </summary>
/// <param name="xmlstring">xml字符串</param>
/// <returns></returns>
private XDocument readxml(string xmlstring)
{
XDocument xmldoc = null;
xmldoc = XDocument.Parse(ReplaceXmlSpecialCharacter(xmlstring)); return xmldoc;
} /// <summary>
/// 读取xml
/// </summary>
/// <param name="stream">数据流</param>
/// <returns></returns>
private XDocument readxml(Stream stream)
{ XDocument xmldoc = null;
xmldoc = XDocument.Load(""); return xmldoc;
}
/// <summary>
/// 读取xml
/// </summary>
/// <param name="TextReader"></param>
/// <returns></returns>
private XDocument readxml(TextReader TextReader)
{
XDocument xmldoc = null;
xmldoc = XDocument.Load(TextReader); return xmldoc;
}
/// <summary>
/// 读取xml
/// </summary>
/// <param name="XmlReader"></param>
/// <returns></returns>
private XDocument readxml(XmlReader XmlReader)
{
XDocument xmldoc = null;
xmldoc = XDocument.Load(XmlReader); return xmldoc; }
#endregion

该代码中的ob为一个object对象  它可以是一个 xml组成的string ,或者是一个xml文件的path ,TextReader,XmlReader , Stream 。

XElement的代码相似这里就不贴了,反正 XElement = XDocument.xelement(“元素”)。

实例:  首先测试一个path的

运行代码如下:

 LINQ_Clss.LINQ_TO_Xml xml = new LINQ_TO_Xml();
xml.ob = @"E:\小黑各种功能测试版\LINQ Clss\LINQ Clss\XML\SimpleInventory.xml";
Console.WriteLine(xml.InitializeXMLData());
Console.ReadKey();

运行结果:

再来一个实例  给一段xml的字符串  代码如下:

 LINQ_Clss.LINQ_TO_Xml xml = new LINQ_TO_Xml();
xml.ob = "<!--Current Inventory of AutoLot--><Inventory><Car ID=\"1\"><Color>Green</Color><Make>BMW</Make><PetName>Stan</PetName></Car><Car ID=\"2\"><Color>Pink</Color><Make>Yugo</Make><PetName>Melvin</PetName></Car></Inventory>";
Console.WriteLine(xml.InitializeXMLData());
Console.ReadKey();

运行结果:

至于其他的两个TextReader和XmlReader  还有一个Stream  哪位大大愿意测试的。可以上下图

今天先到这里,明天我整一些linq的查询给你们,其实园内有一篇文章对于这个查询写的蛮详细的,我这边把地址贴下  LINQ标准查询操作符

LINQ TO XML 个人的一些心得1的更多相关文章

  1. LINQ系列:LINQ to XML类

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

  2. LINQ系列:LINQ to XML操作

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

  3. LINQ系列:LINQ to XML查询

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

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

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

  5. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

    本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

  6. c#操作xml文件(XmlDocument,XmlTextReader,Linq To Xml)

    主界面

  7. Linq对XML的简单操作

    前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...

  8. LINQ to XML 编程基础

    1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: 隐藏行号 复制代码 ?创建 XML public static void CreateDocumen ...

  9. XML基础学习02<linq to xml>

    Linq to XML的理解 1:这是一种比较好的操作Xml的工具. àXDocument 文档 àXElement 元素 àXAttribute 属性 àXText 文本 2:这里还是和我们之前创建 ...

随机推荐

  1. win10 Enable developer Mode

    经过漫长的安装过程 win10终于装上了vs2015 rc-   写个小程序试试 结果提示:   根据提示打开 设置--更新--for developer 据说应该有这么个界面:   但是这个界面根本 ...

  2. WPF 设置程序开机自动运行(+注册表项)

    #region 设置程序开机自动运行(+注册表项) RegistryKey rgkRun = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Micr ...

  3. 生活科技两相宜:(一)Win7使用微软SkyDrive网盘简易教程

    今天得写一个Win7使用微软SkyDrive网盘的简易教程,主要是给我老婆看,顺便贴出来给大家共享一下:)    使用微软SkyDrive网盘有两个层次.一个是使用网页版,这个跟使用163或者QQ网盘 ...

  4. chrome start.js报错

    是由 chrome 插件 “电脑管家广告过滤” 引起的 并且,在用户电脑上还出现了这个插件拦截正常请求的情况 如果同时报以下错误: Uncaught TypeError: Cannot read pr ...

  5. Xcode7.x中安装Alcatraz

    将Xcode升级了,发现Alcatraz失效了: xcode7.x安装插件命令:curl -fsSL https://raw.github.com/supermarin/Alcatraz/master ...

  6. 项目管理知识体系指南(PMBOOK指南)(第5版) 阅读摘要

    1.7.2 项目经理的人际技能 领导力: 团队建设: 激励: 沟通: 影响力: 决策能力: 政治和文化意识: 谈判: 建立信任: 冲突管理: 教练技术: 3.4 规划过程组 在制定项目管理计划和项目文 ...

  7. Win7下安装配置gVim

    本文根据vim官网的<Simple Steps to Help You Install gVim on Windows 7>[1]一文整理而成. 1. 下载gVim 在http://www ...

  8. 14款让前端开发者心动的jQuery/CSS3插件及源码

    14款让前端开发者心动的jQuery/CSS3插件及源码,一起来看看. 1.jQuery左右滚动banner代码! DEMO演示    /    源码下载 2.jQuery QQ表情插件qqFace ...

  9. HttpRequest重写,解决资源战胜/链接超时/分块下载事件通知 问题。

    /************************************************************************************** 文 件 名: WebRe ...

  10. 页面头部title、description、keywords标签的优化

    页面头部优化<Head></Head>中间的区域中间的区域,我们称为网页的头部.在网页的头部中,通常存放一些介绍页面内容的信息,例如页面标题.描述及关键字等等.在头部优化中,除 ...