当前位置:
开发笔记 >
Android > 正文
在.NETFramework中轻松处理XML数据(4-1)
作者:百万会员XTN_859 | 来源:互联网 | 2014-05-04 00:08
??XmlTextWriter类??用在本节中的方法创立XML文档显然并不艰苦。多年以来,开发者都是通过在缓存在连接一些字符串,连接好以后再把缓存中字符串输出到文件的方法来创立XML文档
??XmlTextWriter类 ??用在本节中的方法创立XML文档显然并不艰苦。多年以来,开发者都是通过在缓存在连接一些字符串,连接好以后再把缓存中字符串输出到文件的方法来创立XML文档。但是以这种方法创立XML文档的方法只有在你保证字符串中不存在任何渺小的错误的时候才有效。.NET Framework通过用XMLwriter供给了更好的创立XML文档的方法。 ??XML Writer类以只前(forward-only)的方法输出XML数据到流或者文件中。更重要的是,XML Writer在设计时就保证所有的XML数据都符合W3C XML 1.0推荐规范,你甚至不用担心忘记写闭标签,由于XML Writer会帮你写。XmlWriter是所有 XML writer的抽象基类。.NET Framework只供给唯一的一个writer 类----XmlTextWriter类。 ??我们先来看看XML writers和旧的writers的不同点,下面的代码保留了一个string型的数组: StringBuilder sb = new StringBuilder(''); sb.Append(''); foreach(string s in theArray) { sb.Append(' sb.Append(s); sb.Append('\'/>'); } sb.Append(''); ??代码通过循环取出数据中的元素,写好标签文本并把它们累加到一个string中。代码保证输出的内容是格局良好的并且留心了新行的缩进,及支撑命名空间。当创立的文档结构比拟简略时,这种方法可能不会有错误。然而,当你要支撑处理指令,命名空间,缩进,格局化以及实体的时候,代码的数目就成指数级增加,出错的可能性也随之增加。 ??XML writer写方法功效对应每个可能的XML节点类型,它使创立xml文档的过程更符合逻辑、更少的信任于繁琐的标记语言。图六演示了怎么样用XmlTextWriter类的方法来连接一个string数据。代码很简洁,用XML writer的代码更轻易读、结构更好。 Figure 6 Serializing a String Array void CreateXmlFileUsingWriters(String[] theArray, string filename) { // Open the XML writer (用默认的字符集) XmlTextWriter xmlw = new XmlTextWriter(filename, null); xmlw.Formatting = Formatting.Indented; xmlw.WriteStartDocument(); xmlw.WriteStartElement('array'); foreach(string s in theArray) { xmlw.WriteStartElement('element'); xmlw.WriteAttributeString('value', s); xmlw.WriteEndElement(); } xmlw.WriteEndDocument(); // Close the writer xmlw.Close(); } ??然而XML writer并不是魔术师----它不能修复输进的错误。XML writer不会检查元素名和属性名是否有效,也不保证被用的任何的Unicode字符集合适当前架构的编码集。如上所述,为了避免输出错误,必需要杜尽非XML字符。但是writer没有供给这种方法。 ??另外,当创立一个属性节点时,Writer不会检验属性节点的名称是否与已存在的元素节点的名称雷同。最后,XmlWriter类不是一个带验证的Writer类,也不保证输出是否符合schema或者DTD。在.NET Framework中带验证的writer类目前来说还没有供给。但是在我写的《Applied XML Programming for Microsoft .NET (Microsoft Press®, 2002)》书中,我自己写了一个带验证的Writer组件。你可以到下面的网址往下载源码:http://www.microsoft.com/MSPress/books/6235.asp. ??图七列出了XML writer的一些状态值(state)。这些值都源于WriteState枚举类。当你创立一个Writer,它的初始状态为Start,表现你将要配置该对象,实际上writer没有开端。下一个状态是Prolog,该状态是当你调用WriteStartDocument方法开端工作的时候设置的。然后,状态的转换就取决于你的写的文档及文档的内容了。Prolog状态一直保留到当你增加一个非元素节点时,例如注释元素,处理指令及文档类型。当第一个节点也就是根节点写完后,状态就变为Element。当你调用WriterStartAtribute方法时状态转换为Attribute,而不是当你调用WriteAtributeString方法写属性时转换为该状态。假如那样的话,状态应当是Element。当你写一个闭标签(>)时,状态会转换成Content。当你写完文档后,调用WriteEndDocument方法,状态就会返回为Start,直到你开端写另一个文档或者把Writer关掉。
推荐阅读
本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ...
[详细]
蜡笔小新 2024-12-27 13:10:20
在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ...
[详细]
蜡笔小新 2024-12-27 12:17:16
SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ...
[详细]
蜡笔小新 2024-12-25 19:26:39
在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ...
[详细]
蜡笔小新 2024-12-25 18:48:34
本文探讨了在通过 API 端点调用时,使用猫鼬(Mongoose)的 findOne 方法总是返回 null 的问题,并提供了详细的解决方案和建议。 ...
[详细]
蜡笔小新 2024-12-25 17:40:33
探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ...
[详细]
蜡笔小新 2024-12-25 13:38:29
本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ...
[详细]
蜡笔小新 2024-12-25 10:33:17
本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ...
[详细]
蜡笔小新 2024-12-24 19:21:28
本文详细介绍了Java Web应用程序中的过滤器(Filter)功能,包括其作用、实现方式及配置方法。过滤器可以在请求到达目标资源之前对其进行预处理,并在响应返回给客户端之前进行后处理。 ...
[详细]
蜡笔小新 2024-12-24 17:57:57
本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ...
[详细]
蜡笔小新 2024-12-24 16:36:52
本文介绍了一个使用Silverlight开发的可视化工具,主要用于展示和操作复杂的实体关系图(Graph)。该工具在犯罪调查系统中得到了广泛应用,帮助用户直观地获取和理解相关信息。 ...
[详细]
蜡笔小新 2024-12-24 15:29:19
探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ...
[详细]
蜡笔小新 2024-12-24 12:30:56
本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ...
[详细]
蜡笔小新 2024-12-24 12:23:09
本文介绍如何通过 Android 的 Selector 实现按钮在不同状态下(如按压)的背景和文本颜色动态变化。我们将详细讲解实现步骤,并提供完整的代码示例。 ...
[详细]
蜡笔小新 2024-12-24 10:15:17
本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ...
[详细]
蜡笔小新 2024-12-24 08:21:49
百万会员XTN_859
这个家伙很懒,什么也没留下!