ASP.NET XML查找 之 XPath的封裝[ 二 ]

接上一篇文章 我把後面的增刪改部分方法貼出來

//每一個方法 都需要一個Domname參數,這就是上篇中用鍵值對的原因,通過鍵來查找對應的控制器..

 

//  查找單個子節點

        public static XPathNavigator querySingle(String domname,String expression)
        {
            try
            {
                return navigator[domname].SelectSingleNode(expression);
            }

            catch (Exception ex)
            {
                throw new NotImplementedException(ex.Message);
            }
        }

 

//查找節點集合
        public static XPathNodeIterator queryNodes(String domname,String expression)
        {
            try
            {
                return navigator[domname].Select(expression);
            }
            catch (Exception ex)
            {
                throw new NotImplementedException(ex.Message);
            }
        }

 

//保存文檔
        public static void SaveDom(String domname)
        {
            try
            {
                DomCollection[domname].Save(Global.paths[domname]);
            }
            catch (Exception ex)
            {
                throw new NotImplementedException(ex.Message);
            }
        }

 

//增

        public static void InsertSingle(String domname,String expression,String eles)
        {
            querySingle(domname, expression).InsertAfter(eles);
           
            SaveDom(domname);
        }
//改匹配 替換形式
        public static void UpdateSingle(String domname, String expr, String eles)
        {
            querySingle(domname,expr).ReplaceSelf(eles);

            SaveDom(domname);
        }

//改匹配元素的值
        public static void UpdateAttr(String domname, String expr, Object eles)
        {
            querySingle(domname, expr).SetTypedValue(eles);

            SaveDom(domname);
        }

//刪除匹配元素                                   
        public static void DeleteSingle(String domname,String expr)
        {
            querySingle(domname, expr).DeleteSelf();

            SaveDom(domname);
        }

 

另外還可以繼續封裝 如改屬性、移位.. 上面的去掉try catch也沒多少代碼了...

 

調用的時候只需要 className.方法名(參數)就行了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章