.NET 处理xml有几种方式?
3个回答
展开全部
目前最常用的是三种(有类库支持)
XMLDocument类,该类是按照XML的结构进行解析对象的。
XMLReader类,该类主要是按照文件特性对XML进行处理的。
Linq to XML,这不一个类,是一个技术,严格说来是.net中的一个轻量级架构。如linq to sql等等。说白了它是通一个一构架将XML当做对象进行处理的。
可以说XMLReader最接近了底层(文件处理级),XMLDocument偏重于XML文件结构,主要是处理相关的节点,按树型结构进行分析XML的。而Linq to XML与XML序列化则是将XML转换为一个对象,然后直接按对象引用的法则进行引用的,所以是最偏向于业务层。
当然,如果不需类库支持,那么按IO中的文本处理也是可以的——目前还有不少的新手程序员这样用,他不考虑任何跟XML有相关性,把XML纯粹当做文本文件进行处理的!也就是写txt文件,只不过是按XML格式而已。这种方法其实最不合适的。没有有类库支持。
至少XMLReader是按文件处理,但至于也可以做一下校验,如DTD或XSLS进行校验。如果说要对节点使用,那就选用XMLDocument,定可以定义一个一个的节点对象,然后一个一个地加入。而Linq to xml与xml序列化就是通过一些规则使用XML与指定对象间进行转换,更象是ORM,所以更接过于业务。
不过的处理方式一般表示不同的内容的。在写程序时根据具体的情况进行选择。
如果是固化的大部分内容,只须一点的变化,那么可以当做文本文件进行处理。如果是写一些模板,则多数时间用的是XMLReader,如果是要对XML节点进行操作,那么XMLDocument更合适一些。最后一种情况就是比如在于wcf,soap等特殊的情况下,有时是用DAO/DTO/ADO等情况下时,会选用序列化(WCF会自动序列,代码编写者不用知道其他的转换过程),或linq to xml。
这个要看具体情况选择——当你觉得选哪种方式都可以时,一定是你对问题没有理解清楚!请重新考虑问题,一般只有一种最恰当的方式。
XMLDocument类,该类是按照XML的结构进行解析对象的。
XMLReader类,该类主要是按照文件特性对XML进行处理的。
Linq to XML,这不一个类,是一个技术,严格说来是.net中的一个轻量级架构。如linq to sql等等。说白了它是通一个一构架将XML当做对象进行处理的。
可以说XMLReader最接近了底层(文件处理级),XMLDocument偏重于XML文件结构,主要是处理相关的节点,按树型结构进行分析XML的。而Linq to XML与XML序列化则是将XML转换为一个对象,然后直接按对象引用的法则进行引用的,所以是最偏向于业务层。
当然,如果不需类库支持,那么按IO中的文本处理也是可以的——目前还有不少的新手程序员这样用,他不考虑任何跟XML有相关性,把XML纯粹当做文本文件进行处理的!也就是写txt文件,只不过是按XML格式而已。这种方法其实最不合适的。没有有类库支持。
至少XMLReader是按文件处理,但至于也可以做一下校验,如DTD或XSLS进行校验。如果说要对节点使用,那就选用XMLDocument,定可以定义一个一个的节点对象,然后一个一个地加入。而Linq to xml与xml序列化就是通过一些规则使用XML与指定对象间进行转换,更象是ORM,所以更接过于业务。
不过的处理方式一般表示不同的内容的。在写程序时根据具体的情况进行选择。
如果是固化的大部分内容,只须一点的变化,那么可以当做文本文件进行处理。如果是写一些模板,则多数时间用的是XMLReader,如果是要对XML节点进行操作,那么XMLDocument更合适一些。最后一种情况就是比如在于wcf,soap等特殊的情况下,有时是用DAO/DTO/ADO等情况下时,会选用序列化(WCF会自动序列,代码编写者不用知道其他的转换过程),或linq to xml。
这个要看具体情况选择——当你觉得选哪种方式都可以时,一定是你对问题没有理解清楚!请重新考虑问题,一般只有一种最恰当的方式。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询