zoukankan      html  css  js  c++  java
  • [ASP.net]XML操作相關

    以前寫過一個操作XML的相關類。其中有一段是讀取節點值的。
    下面代碼:
            public DataView GetData(string XmlPathNode)
            
    {
                
    //Get XML Date,return DataView
                try
                
    {
                    StringReader read 
    = new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
                    ds.ReadXml(read);
                }

                
    catch
                
    {
                    objError.ProgramError();
                }

                
    if ( ds.Tables.Count == 0 )
                
    {
                    
    return new DataView();
                }

                
    return ds.Tables[0].DefaultView;
            }

    此方法是讀取XML數據中指定節點及值。後來在一位朋友改寫了下代碼:
            public DataView GetData(string XmlPathNode)
            
    {
                
    //Get XML Date,return DataView
                try
                
    {
    //                System.IO.StringReader read = new System.IO.StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
                    XmlNodeList xnl = objXmlDoc.GetElementsByTagName(XmlPathNode);
                    System.Text.StringBuilder strXml 
    = new System.Text.StringBuilder();
                    strXml.Append( 
    "<?xml version='1.0' ?><root>" );
                    
    for (int i=0; i<xnl.Count; i++)
                    
    {
                        strXml.Append( xnl[i].OuterXml );
                    }

                    strXml.Append( 
    "</root>" );
                    System.IO.StringReader read 
    = new System.IO.StringReader( strXml.ToString() );
                    ds.ReadXml(read);
                }

                
    catch
                
    {
                    
    //
                }

                
    return ds.Tables[0].DefaultView;
            }

    此方法是讀取所有XmlPathNode節點及值,重新生成一個XML,返回DataView。

    兩方法的區別在於:前者讀取指定節點,後者是讀所有節點。
  • 相关阅读:
    动态代理练习2全站压缩流输出[response动态代理]
    动态代理练习3自定义数据库连接池[connection动态代理]
    类加载器
    Mysql中的数据类型对应于Java中什么数据类型
    使用网上流传的一个数据库连接池在Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法
    动态代理练习1全站字符编码过滤[request动态代理]
    用cocos2dx将helloworld实现出来了
    多线程的自动管理(线程池)
    互斥对象
    多线程的自动管理(定时器)
  • 原文地址:https://www.cnblogs.com/HD/p/118897.html
Copyright © 2011-2022 走看看