在.NET Framework中轻松处理XML数据(5-2)

2016-02-19 21:16 0 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享在.NET Framework中轻松处理XML数据(5-2)教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

  图十二所示的代码演示了客户端用XMLTextReadWriter类在读操作的同时修改属性值的优势。在本期的msdn中提供了XmlTextReadWriter类的C#和VB源代码下载(见本文开头提供的链接)。
Figure 12 Changing Attribute Values

private void ApplyChanges(string nodeName, string attribName,

string oldVal, string newVal)

{

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

XMLTextReadWriter rw = new XmlTextReadWriter(InputFileName.Text,

OutputFileName.Text);

rw.WriteStartDocument(true, CommentText.Text);

// 手工修改根节点

rw.Writer.WriteStartElement(rw.Reader.LocalName);

// 开始修改属性

// (可以修改更多节点的属性)

rw.AddAttributeChange(nodeName, attribName, oldVal, newVal);

// 循环处理文档

while(rw.Read())

{

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

switch(rw.NodeType)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

{

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

case XMLNodeType.Element:

rw.Writer.WriteStartElement(rw.Reader.LocalName);

if (nodeName == rw.Reader.LocalName)

// 修改属性

rw.WriteAttributes(nodeName);

else

// deep copy

rw.Writer.WriteAttributes(rw.Reader, false);

if (rw.Reader.IsEmptyElement)

rw.Writer.WriteEndElement();

break;

}

}

// Close the root tag

rw.Writer.WriteEndElement();

// Close the document and any internal resources

rw.WriteEndDocument();

}

  XMLTextReadWriter类不仅可以读XML文档,也可以写XML文档。你可以它来读XML文档的内容,如果需要,你还可以用它来做一些基本的更新操作。基本的更新操作在这里是指修改某个已存在的属性的值或者某个节点的内容,又或者是增加一个新的属性或节点。对于更复杂的操作,最好还是用XMLDOM分析器。

  总结

  Reader和Writer是.NET Framework中处理XML数据的根本。它们提供了对所有XML数据访问功能的原始的API。Reader像一个新的分析器类,它即有XMLDOM的强大,又有SAX的快速简单。Writer为简单的创建XML文档而设计。虽然Reader和Writer都是.NET Framework中的一小块,但是它们是相互独立的API。在本文中,我们只讨论了怎么样用Reader和Writer完成一些主要的工作, 介绍了验证分析器的原理机制,并把Reader和writer整合在一个单独的类中。上述所有的这些类都是轻量级的,类似于游标式的XMLDOM分析器。

来源:https://www.tulaoshi.com/n/20160219/1625729.html

延伸阅读
标签: Web开发
XMLReader类 XML阅读器支持一个编程接口,接口用于连接XML文档,“推出”你要的数据。如果你更深入去了解阅读器,你会发现阅读器工作原理类似于我们的桌面应用程序从数据库中取出数据的原理。数据库服务返回一个游标对象,它包含所有查询结果集,并返回指向目标数据集的开始地址的引用。XML阅读器的客户端收到一个指向阅读器实例的引...
标签: Web开发
ValidationType属性设置验证的类型,它可以是:DTD, XSD, XDR或者none。如果没有指定验证的类型(用ValidationType.Auto选项),阅读器将自动的根据文档用最适合的验证类型。在验证过程中出现任何错误,都会触发ValidationEventHandler事件。如果未提供事件ValidationEventHandler事件处理程序,则抛出一个XML异常。定义ValidationEventHand...
标签: Web开发
每个节点的类型是XMLNodeType枚举中的一种,在如图三所示的代码中,我们只用了其中的两种类型:Element 和 EndElement。输出源码重新定制了原始的文档结构,它丢弃或者说是忽略了XML元素的属性和节点内容,只输出了元素节点名。假设我们运用了下面的XML片断: <mags> <mag name="MSDN Magazine"> MSDN Magazine ...
标签: Web开发
图八中代码演示了把一个string数据转换为Base64 编码的XML流。图九是输出的结果。 Figure 8 Persisting a String Array as Base64 using System; using System.Text; using System.IO; using System.XML; class MyBase64Array { public static void Main(String[] args) { string outputFileName = "test64.XML"; if...
标签: Web开发
在.NET Framework中,XMLTextReader和XmlTextWriter类提供了对xml数据的读和写操作。在本文中,作者讲述了XML阅读器(Reader)的体系结构及它们怎样与XMLDOM 和SAX 解释器结合。作者也演示了怎么样运用阅读器分析和验证XML文档,怎么样创建格式良好的XML文档,以及怎么样用函数读/写基于Base64和BinHex编码的大型的XML文档。最后,作者讲了怎...

经验教程

380

收藏

57
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部