新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     >>W3CHINA.ORG讨论区<<     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWLXML.ORG.CN讨论区 - XML技术『 XML基础 』 → [原创]C# XML生成方法总结 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6809 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [原创]C# XML生成方法总结 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     pumaboyd 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:14
      积分:129
      门派:XML.ORG.CN
      注册:2005/11/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给pumaboyd发送一个短消息 把pumaboyd加入好友 查看pumaboyd的个人资料 搜索pumaboyd在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看pumaboyd的博客楼主
    发贴心情 [原创]C# XML生成方法总结

    因为最近XML的工作比较多,而且提供给客户的XML变化多。所以就总结的一些平时自己在ASP.NET中生成XML用到的一些方式:

    StringBuild拼接
    不用多说这是最原始的方式,原始的好处就是你控制的很多。不好的地方就是,你写多了这些控制你就烦了,而且容易出错。

    DataSet方法
    这是我最喜欢的方式,但如果格式是客户定义的,这种方法就非常不方便。我们假定格式是自己定义。你基本上只有使用DataSet.ReadXml 和DataSet.WriteXml 这两个方法就可以了。大文件处理不适合。

    XML序列化
    通过XmlSerializer对定义好的C#对象,直接序列化成XML文件。我个人不太喜欢这样的方式,我觉得对于如果只是想输出一个XML文件给对方,如果用这种方式会复杂化。而且明显学习的成本很高,你需要对实体的定义很清晰,而且用户的需求可能会把一个可以简单的方式因为使用了这种方式反而复杂化了。大文件处理不适合。

    XMLTextWrite方式
    这个方式很提倡,即考虑到开发的灵活和简单,又简化了很多判断。比如对XML特殊字符的替换。你不要关心这些,通过XmlTextWrite去创建的XML会自动过滤XML非法字符。
    Copy的一段实例:
    XmlTextWriter wr = new XmlTextWriter("mytest.xml",Encoding.UTF8);
    wr.WriteStartDocument();
    wr.Formatting = Formatting.Indented;
    wr.WriteStartElement("Team");
    wr.WriteStartElement("player");
    wr.WriteAttributeString("Name", "George Zip'\"");
    wr.WriteAttributeString("Position", "QB");
    wr.WriteElementString("Nickname", "Zippy&&'<>\”");
    wr.WriteStartElement(”test”);
    wr.WriteCData(”sssssdfsdfsdfsdfs7777&&&”);
    wr.WriteEndElement();
    wr.WriteEndElement();
    wr.WriteEndElement();
    wr.WriteEndDocument();
    wr.Close();


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    欢迎访问<a href= http://www.pumaboyd.com>www.pumaboyd.com</a>

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/11/5 23:14:00
     
     hexun831012 帅哥哟,离线,有人找我吗?天秤座1983-10-12
      
      
      威望:1
      等级:研二(Pi-Calculus看得一头雾水)(版主)
      文章:800
      积分:5114
      门派:XML.ORG.CN
      注册:2006/12/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hexun831012发送一个短消息 把hexun831012加入好友 查看hexun831012的个人资料 搜索hexun831012在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hexun831012的博客2
    发贴心情 
    唉,说了3个,都不在点子上
    最好的方式使用XmlWriter,XmlTextWriter其实并不推荐,第一,它超越了标准,第二,它不是2.0+的推荐方式,要创建XmlWriter需要用静态的Create()方法,别的不多说。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/11/6 15:48:00
     
     GoogleAdSense天秤座1983-10-12
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/28 16:36:17

    本主题贴数2,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.500ms