Linq處理XML文件

2021-08-23 11:25:03 字數 4092 閱讀 7337

///

/// 處理xml文件的封裝

///

public static class xmlhelper

return xdocument.load(filename);

}///

/// 獲得子節點實體

///

/// 節點

/// 子節點的定義

/// 子節點的屬性名稱

/// 子節點的屬性值

/// 子節點屬性值為指定值的,若null沒找到,否則返回第乙個匹配的

public static xelement getelement(xelement element, xname nodename, xname name, string value)

else

else

return null;}}

}///

/// 獲得節點name陣列指定的最後乙個節點

///

/// 節點

/// 節點name陣列

/// name陣列指定的最後乙個節點,若null沒找到,否則返回第乙個匹配的

public static xelement getelement(xelement element, xname names)

else

else

else}}

return element;}}

///

/// 獲得element下node指定的子節點實體

///

/// 節點

/// element下子節點名稱

/// element下node指定的子節點實體,若null沒找到,否則返回第乙個匹配的

public static xelement getelement(xelement element, xname node));}

///

/// 獲得root下node指定的節點實體

///

/// xdocument實體

/// root下節點名稱

/// root下node指定的節點實體,若null沒找到,否則返回第乙個匹配的

public static xelement getelement(xdocument doc, xname node));}

///

/// 獲得節點name陣列指定的最後乙個節點的集合

///

/// 節點

/// 節點name陣列

/// name陣列指定的最後乙個節點的集合,若null沒找到,否則返回集合

public static ienumerablegetelements(xelement element, xname names)

else

else if (names.length == 1)

else

else if (i == names.length - 1)

else}}

return null;}}

///

/// 獲得節點name陣列指定的最後乙個節點的集合

///

/// 節點

/// 節點name陣列

/// 子節點的定義

/// 子節點的屬性名稱

/// 子節點的屬性值

/// name陣列指定的最後乙個節點的集合的nodename子節點屬性值為指定值的,若null沒找到,否則返回集合

public static ienumerablegetelements(xelement element, xname names,xname nodename,xname name,string value)

if (element == null || element.element(nodename) == null)

else

}///

/// 獲得指定屬性值

///

/// 節點實體

/// 屬性名

/// 屬性值(原始值),若""則未設定此屬性

public static string getattributeoriginal(xelement element, xname name)

else

else}}

///

/// 獲得指定屬性值(已轉化為小寫)

///

/// 節點實體

/// 屬性名

/// 屬性值(已轉化為小寫),若""則未設定此屬性

public static string getattribute(xelement element, xname name)

///

/// 獲得指定屬性值 若""則返回預設值def (已轉化為小寫)

///

/// 節點實體

/// 屬性名

/// 屬性值(已轉化為小寫),若""則返回預設值def

public static string getattribute(xelement element, xname name, string def)

else

}///

/// 獲得屬性的數值

///

/// 節點

/// 屬性

/// 預設值

///

public static int getintvalue(xelement element, string name, int def)

else

}///

/// 獲得節點的值

///

/// 節點實體

/// 值,若""則無值

public static string getvalue(xelement element)

else

else}}

///

/// 給指定的屬性賦值

///

/// 節點實體 空不能賦值

/// 屬性值 屬性值為空不能賦值

/// 值物件 空或tostring()==""則不賦值 去除特殊字元

public static void setattribute(xelement element, xname name, object value)

else

if (v != "")}}

///

/// 給指定的屬性賦值

///

/// 節點

/// 節點name陣列 給最後乙個節點的屬性賦值 為空不能賦值

/// 屬性值 屬性值為空不能賦值

/// 值物件 空或tostring()==""則不賦值 去除特殊字元

public static void setattribute(xelement element, xname names, xname attname, string value)

///

/// 給指定的屬性賦值

///

/// 節點

/// 節點name陣列 給最後乙個節點的屬性賦值 為空不能賦值

/// 屬性及值集合

public static void setattribute(xelement element, xname names, namevaluecollection nvs)

else

setattribute(element, name, nvs[i]);}}

}///

/// 去除屬性值中不符合xml要求的字元

///

///

///

private static string getattributevalue(string value)

else

}///

/// 給指定的節點賦值(如果節點不存在則建立)

///

/// 節點

/// 節點及值集合

public static void setvalue(xelement element, namevaluecollection nvs)

else

string value = nvs[i];

if (!string.isnullorempty(value))

else}}

}}}

Linq處理Xml文件的封裝

using system using system.collections.generic using system.collections.specialized using system.text using system.xml.linq using system.linq namespace...

Linq處理Xml文件的封裝

using system using system.collections.generic using system.collections.specialized using system.text using system.xml.linq using system.linq namespace...

Linq學習《五》 運用linq查詢Xml

這節將學習如何用 linq查詢xml 一 我們先看看在xml中我們怎麼操作 public void xmlwaytoqueryxmlfile 這是在using system.xml條件下查詢xml中id 100的node下所有的innertext 關於在xml中查詢方法,這裡講的比較詳細 二 我們看...