发挥.NET里XML最大功效的技巧

ZDNet软件频道 时间:2002-12-19 作者:BUILDER.COM |  我要评论()
本文关键词:
.NET Framework的System.Xml命名空间里有很多个类,要平衡好这些类在应用程序里的使用是一件令人生畏的事情。这里有五条提示,能够有助于最有效地使用这些.NET的XML类。

.NET Framework的System.Xml命名空间里有很多个类,要平衡好这些类在应用程序里的使用是一件令人生畏的事情。尽管它们能够很好地工作,但是.NET的XML类和大多数开发人员所熟悉的类有很大的不同,这让有效地使用它们变得很困难。这里有五条提示,能够有助于最有效地使用这些.NET的XML类。

第一条提示:始终是用流来打开文件

在打开文档用于读取的时候,指定文件的路径,让XmlReader来为你打开文件的想法是很诱人的。但是如果能够做到的话的话,你最好是用流对象来打开文件,并改到从流里创建阅读器。流的灵活性很强,你可以使用它们完成使用文件URI不容易完成的事情,比如说从同一个流里打开第二个不同类型的阅读器或者编写器。看下一条提示里的实例,你就会知道做到这一点是很容易的。

第二条提示:对编写的验证

如果使用内置类,那么在编写文档的时候,你就不可能将这个文档同DTD或者结构描述进行对比验证。在需要这样进行验证的情况下,你就要试着把文档写到内存流里并使用XmlValidatingReader把它从流里读出来,就像下面这样:

    MemoryStream s = new MemoryStream();
XmlTextWriter wtr = new XmlTextWriter(s, System.Text.Encoding.ASCII);
//write XML here
s.Seek(0, SeekOrigin.Begin);
//open a validating reader
XmlValidatingReader rdr = new XmlValidatingReader(new XmlTextReader(s));
rdr.Schemas.Add(null, “C:somefile.xsd”);
rdr.ValidationType = ValidationType.Schema;
try{
while(rdr.Read());
}catch {
//validation error
}

如果在后来需要把验证过的文档写到文件里,你只需要使用MemoryStream的WriteTo方法把流的内容复制到FileStream里就行了:

    FileStream f = new FileStream(“C:somefile.xml”);
s.WriteTo(f);


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134