叶子树logo
首 页 技术教程 新闻资讯 网站展示 酷站欣赏 下载中心 站长故事 字体下载 图片素材
Web www.webshu.net
 
  最新推荐→

 
  最新热门→

 
  相关文章→
 您现在的位置: 叶子树 >> 技术教程 >> 网络编程 >> XML教程 >> 正文

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

作者:佚名    文章来源:不详    点击数:    更新时间:2008-4-28         

 

<% if request("infoid")<>"" then set rs=conn.execute("select * from nproduct where id="&request("infoid")) if not (rs.eof and rs.bof) then proname=rs("proname") content=rs("proinfo") end if rs.close set rs=nothing end if %>
图十二所示的代码演示了客户端用XmlTextReadWriter类在读操作的同时修改属性值的优势。在本期的msdn中提供了XmlTextReadWriter类的C#和VB源代码下载(见本文开头提供的链接)。
Figure 12 Changing Attribute Values

private void ApplyChanges(string nodeName, string attribName,

string oldVal, string newVal)

{

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())

{

switch(rw.NodeType)

{

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分析器。
叶子树:www.webshu.net
  • 下一篇文章:

  • 文章录入:webshu    责任编辑:webshu 
    叶子树(www.webshu.net)所有资料源于作者发布或网友推荐收集整理而来,仅供学习使用,版权归原作者所有,如有侵权,请您联系我们,我们将尽快更正。

      网友评论:(评论内容只代表网友观点,与本站立场无关!) 发表评论

    网站地图 | 友情链接 | 留言互动 | 版权声明
    Copyright©All return the ye ze shu and www.webshu.net
    本站广告服务请加QQ:904166(超越-激情)
    京ICP备08103660号 把"叶子树" 与你的好友一起分享!