zoukankan      html  css  js  c++  java
  • linq to xml 中SaveOptions和LoadOptions的介绍

    一、介绍保存的时候用到的Save()的参数SaveOptions枚举

    在LINQ to XML中保存XML数据到文件,只需要通过XElement类的Save()方法即可,该方法具有多个重载版本,可以将XML数据保存到文件和流。定义如下:

    1. public void Save(string fileName);  
    2. public void Save(TextWriter textWriter);  
    3. public void Save(XmlWriter writer);  
    4. public void Save(string fileName, SaveOptions options);  
    5. public void Save(TextWriter textWriter, SaveOptions options); 

    其中,fileName表示XML元素要保存的文件名,textWriter和writer表示XML元素保存的文件流,options参数表示保存XML数据时使用的格式,是SaveOptions类型,包括如下选项。

    None:保存XML数据时按照元素结构进行格式化,具有缩进,去除空格等对齐格式的好处,更加易读。

    DisableFormatting:即可以把所有的xml节点压缩到一行显示,不便于阅读。

    示例代码17-18演示如何通过Save()保存XML数据到文件。首先创建一个简单的XML元素userList,然后通过Save()方法用不同的SaveOptions进行保存。

    示例代码17-18

    1. static void SaveElement( )  
    2. {  
    3.     //首先创建一个XML元素userList  
    4.     XElement userList = new XElement("UserList",  
    5.                 new XAttribute("Count", 1),  
    6.                 new XElement("User",  
    7.                              new XAttribute("ID", "001"),  
    8.                              new XElement("Name", "张三")));  
    9.     //保存数据到文件UserListFormatted.XML  
    10.     userList.Save(@"C:\UserListFormatted.XML", SaveOptions.DisableFormatting);  
    11.     //保存数据到文件UserListNone.XML  
    12.     userList.Save(@"C:\UserListNone.XML", SaveOptions.None);  

    执行完成示例代码17-18之后,可以可以总结:用SaveOptions.None保存XML数据时,生成的XML文档具有缩进,去除空格等对齐格式的好处,更加易读。

    相反,用SaveOptions.DisableFormatting保存的XML文档没有任何空白,所有元素都直接连接到一行,不便于阅读。

     //保存数据到文件UserListFormatted.XML  

    <?xml version="1.0" encoding="utf-8"?><UserList Count="1"><User ID="001" Name="张三"></User></UserList>

    //保存数据到文件UserListNone.XML  

    <?xml version="1.0" encoding="utf-8"?>

    <UserList Count="1">

      <User ID="001" Name="张三"></User>

    </UserList>

    默认使用SaveOptions.None

    一、介绍保存的时候用到的Load()的参数LoadOptions枚举(主要讲解PreserveWhitespace和None)

    在LINQ to XML中加载XML数据到文件,只需要通过XDocument类和XElement类的Load()方法和Parse即可,该方法具有多个重载版本,定义如下:

    Parse()方法是:从字符串创建新 XDocument和XElement对象

    实例:19-20

    string text="

    <?xml version='1.0' encoding='utf-8'?>
    <ArrayOfUserInfo >

      <UserInfo UserID='2'>
        <UserName>张三</UserName>
        <UserSex>男</UserSex>
        <UserPhone ID='2'>
          <电话>33333333</电话>
          <手机>44444444</手机>
        </UserPhone>
      </UserInfo>
    </ArrayOfUserInfo>";

    XDocument xdoc=XDocument.Parse(text,LoadOptions.PreserveWhitespace);      

    输出:

    <?xml version='1.0' encoding='utf-8'?>
    <ArrayOfUserInfo >

      <UserInfo UserID='2'>
        <UserName>张三</UserName>
        <UserSex>男</UserSex>
        <UserPhone ID='2'>
          <电话>33333333</电话>
          <手机>44444444</手机>
        </UserPhone>
      </UserInfo>
    </ArrayOfUserInfo>

    XDocument xdoc=XDocument.Parse(text,LoadOptions.None);

    输出:

    <?xml version="1.0" encoding="utf-8"?>
    <ArrayOfUserInfo>
      <UserInfo UserID="2">
        <UserName>张三</UserName>
        <UserSex>男</UserSex>
        <UserPhone ID="2">
            <电话>33333333</电话>
            <手机>44444444</手机>
        </UserPhone>
      </UserInfo>
    </ArrayOfUserInfo>

    由上可以看出LoadOptions.PreserveWhitespace输出在<ArrayOfUserInfo >和<UserInfo UserID='2'>之间有个空行,保留了空行

    而LoadOptions.None输出在<ArrayOfUserInfo >和<UserInfo UserID='2'>之间没有空行,自动移除了不需要的空行

    总结:

    None:加载XML数据时对元素结构进行格式化,具有缩进,去除空格等对齐格式的好处,更加易读。

    PreserveWhitespace:加载XML数据时保留所有无关紧要的空白,XML结构是什么样子就加载成什么样子



  • 相关阅读:
    C#在winform中操作数据库,实现数据增删改查
    未开启Hyper-V,却提示VMware Workstation与Hyper-V不兼容。
    winform实例(5)-截屏工具+保存
    winform实例(4)-播放器(wmp)
    winform实例(3)-利用摄像头进行拍照
    winform实例(2)-简单浏览器
    winform实例(1)-简单记事本
    C#异常处理
    百度文库下载破解
    学习小技能-封装字段
  • 原文地址:https://www.cnblogs.com/wang726zq/p/2423828.html
Copyright © 2011-2022 走看看