接上一篇文章 我把後面的增刪改部分方法貼出來
//每一個方法 都需要一個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.方法名(參數)就行了