<返主目录 ▕▏C#基础库 WjwLibs: V1.1.3▕▏帮助文档 : XML 兼容e4x操作类 ▕▏ 编译日期: 2019-10-21▕▏ Email: wujwmail@163.com

〖XML 兼容e4x操作类〗 /wjw_cs.net/WjwLibs/wjw/WjwE4x.cs


类-1.名称: WjwE4x ▕→ XML处理WjwE4x类

命名空间: WjwLibs
所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
说明: 
    XML处理WjwE4x类
   继承XmlDocument,查询串语法同E4X(as程序员的利器)
   例:
   WjwE4x oE4x = new WjwE4x("<addr/>");
   var node = oE4x.AddXml("<city/>");
   oE4x.AddXml("<abc>123</abc>", node);
   oE4x.AddAttr("key=55,name=广州");
   oE4x.AddXml("<abc>456</abc>", node);
   oE4x.AddAttr("key=88,name=上海");
   WjwPhp.print("查询abc结点属性key=88的属性name的值");
   var val = oE4x.GetXml("city.abc.(@key=88).@name"); //或者: oE4x.GetXml("..abc.(@key=88).@name");
   WjwPhp.print("属性: name=" + val);
   WjwPhp.print("\n压缩打印city结点内容-------------------------");
   WjwPhp.print(oE4x.ToStr("city",true));
   WjwPhp.print("\n打印第二个abc结点内容-------------------------");
   WjwPhp.print(oE4x.ToStr("city.abc[1]"));
   WjwPhp.print("\n打印根文档内容---------------------------");
   WjwPhp.print(oE4x);
定义: 
    public class WjwE4x:XmlDocument,IDisposable

属性名称: DEBUG ▕→ 是否调试运行

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     是否调试运行
 定义: 
     public bool DEBUG = false;

属性名称: WinPathLog ▕→ windows端日志目录

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     windows端日志目录
 定义: 
     public string WinPathLog = @"D:\wjwlibs_cs\wjwe4x";

属性名称: UnixPathLog ▕→ Unix/Linux端日志目录

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     Unix/Linux端日志目录
 定义: 
     public string UnixPathLog = @"/var/wjwlibs_cs/wjwe4x";

属性名称: XmlFile ▕→ 当前(或要保存的)XML文件名

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
    当前(或要保存的)XML文件名
 定义: 
     public string XmlFile="";

属性名称: rootLable ▕→ 根元素名称

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     根元素名称
 定义: 
     public string rootLable = "";

方法名称: WjwE4x ▕→ XML处理WjwE4x类构造器

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     XML处理WjwE4x类构造器
 参数: 
     xstr : xml字符串或已确认存在的文件名及资源名
 定义: 
     public WjwE4x(string xstr="")

方法名称: SetOnlyRead ▕→ 设置文档为只读方式(不自动保存修改结果至源文件)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     设置文档为只读方式(不自动保存修改结果至源文件)
 定义: 
     public void SetOnlyRead()

方法名称: GetEncode ▕→ 获得文档编码(例如: utf-8)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     获得文档编码(例如: utf-8)
 返回: 
 定义: 
     public string GetEncode()

方法名称: SetEncode ▕→ 设置文档编码

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     设置文档编码
 参数: 
     en : 例如: utf-8
     ver : 版本号
 定义: 
     public void SetEncode(string en = "utf-8",string ver= "1.0")

方法名称: SaveTo ▕→ XML缓存保存至文件

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     XML缓存保存至文件
 参数: 
     filename : 文件名,缺省保存为装入的文件
 定义: 
     public void SaveTo(string filename="")

方法名称: GetNote ▕→ 查结点下注释结点的内容

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     查结点下注释结点的内容
 参数: 
     element : 结点,null根结点
 返回: 
     注释数组
 定义: 
     public string[] GetNote(XmlElement element=null)

方法名称: ToStr ▕→ 手动串行化

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
  手动串行化
 参数: 
     enumerable : 元素结点对象或查询串,null为根结点,
     compress : 紧奏格式,缺省为false
 返回: 
     串行化xml
 定义: 
     public string  ToStr(IEnumerable enumerable = null,bool compress = false)

方法名称: ToString ▕→ 重载ToString(),XmlDocument串行化

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     重载ToString(),XmlDocument串行化
 返回: 
     Xml字串
 定义: 
     public override string ToString()

方法名称: GetXmlNode ▕→ 解析xmlpath串获取一个结点句柄

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     解析xmlpath串获取一个结点句柄
 参数: 
     xmlpath : e4x查询表达式,缺省null当前句柄,"."为根句柄
 返回: 
     XmlElement句柄
 定义: 
     public XmlElement GetXmlNode(string xmlpath=null)

方法名称: GetXmlNodes ▕→ 解析xmlpath串获取一个结点句柄数组

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     解析xmlpath串获取一个结点句柄数组
 参数: 
     xmlpath : e4x查询表达式
 返回: 
     XmlElement句柄数组
 定义: 
     public XmlElement[] GetXmlNodes(string xmlpath)

方法名称: GetXml ▕→ 解析xmlpath串获取内容

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     解析xmlpath串获取内容
 参数: 
     xmlpath : e4x查询表达式
     reNull : 当结点或属性不存在时;reNull为true时返null,为false时返空字符
         可利用reNull为true时判断一个结点是否存在
 返回: 
     结果字串/无返null
 定义: 
     public string GetXml(string xmlpath,bool reNull=false)

方法名称: GetNodeValue ▕→ 得到结点值

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     得到结点值
 参数: 
     node : 结点
 返回: 
 定义: 
     public string GetNodeValue(XmlNode node)

方法名称: SetXml ▕→ 解析xmlpath串在指定的结点或属性设置字串值

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     解析xmlpath串在指定的结点或属性设置字串值
 参数: 
     xmlpath : xmlpath串,同e4x语法
     value : 字串值,对结点时可加入xml字串
     update : 是否更新文件,false时仅更新内存内容
 定义: 
     public void SetXml(string xmlpath, string value, bool update = true)

方法名称: ItemType ▕→ 标识符元素类型

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     标识符元素类型
 返回: 
     类型号
 定义: 
     public int ItemType(string item)

方法名称: FindChildNode ▕→ 获得当前元素的孩子结点下的标识符元素句柄[0]

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     获得当前元素的孩子结点下的标识符元素句柄[0]
 参数: 
     label : 标识符
     node : 句柄
 返回: 
     句柄
 定义: 
     public XmlElement FindChildNode(string label,XmlElement node= null)

方法名称: Func_isEndNode ▕→ 判断是否为叶子结点,内置函数isEndNode()的实现

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     判断是否为叶子结点,内置函数isEndNode()的实现
 参数: 
     node : 句柄
 返回: 
     true/false
 定义: 
     public bool Func_isEndNode(XmlElement node)

方法名称: FindAnyNode ▕→ 获得当前元素的所有后代结点下的标识符元素句柄[0]

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     获得当前元素的所有后代结点下的标识符元素句柄[0]
 参数: 
     label : 标识符
     node : 
 返回: 
     句柄
 定义: 
     public XmlElement FindAnyNode(string label,XmlElement node= null)

方法名称: DelXml ▕→ 删除指定的结点(并写入关联XML文件中)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     删除指定的结点(并写入关联XML文件中)
 参数: 
     xmlpath : 元素结点对象或查询串
 返回: 
     元素的父结点/null
 定义: 
     public XmlElement DelXml(IEnumerable xmlpath)

方法名称: AddAttr ▕→ 增加或修改指定的结点的属性组

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     增加或修改指定的结点的属性组
 参数: 
     kvs : 属性键值对(字典数组或csvKV字串)
     xmlpath : 元素结点对象或查询串
 返回: 
 定义: 
     public XmlElement AddAttr(IEnumerable kvs, IEnumerable xmlpath=null)

方法名称: AddXml ▕→ 将一元素增加到指定的结点(并写入关联XML文件中)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     将一元素增加到指定的结点(并写入关联XML文件中)
 参数: 
     xmlstr : 要加入的XML串
     xmlpath : 元素结点对象或查询串
     setAdd : 添加子结点:
         '大于号':添加到子结点最后
         '小于号':添加到子结点最前
         '-':当前结点之前;
         '+':当前结点之后
 返回: 
     新结点
 定义: 
     public XmlElement AddXml(string xmlstr, IEnumerable xmlpath=null, string setAdd=">")

方法名称: GetLogFile ▕→ 获得系统日志文件

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     获得系统日志文件
 参数: 
     isError : 是否是错误日志
 返回: 
     日志文件
 定义: 
     public string GetLogFile(bool isError = false)

方法名称: ToLog ▕→ 输出运行日志

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     输出运行日志
 参数: 
     mess : 消息
 定义: 
     public void ToLog(string mess)

方法名称: ToErr ▕→ 输出错误日志

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     输出错误日志
 参数: 
     mess : 消息
 定义: 
     public void ToErr(string mess)

方法名称: Node ▕→ 获得当前元素句柄(查询1)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     获得当前元素句柄(查询1)
 返回: 
     元素
 定义: 
     public XmlElement Node()

方法名称: Nodes ▕→ 获得当前元素句柄组(查询2)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     获得当前元素句柄组(查询2)
 返回: 
     元素组
 定义: 
     public XmlElement[] Nodes()

方法名称: Array ▕→ 取本结点的属性与值(查询3)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     取本结点的属性与值(查询3)
 参数: 
     xmlpath : 元素结点对象或查询串,缺省null为当前元素
 返回: 
     属性(前导符@)与值数组
 定义: 
     public Dictionary<string,string> Array(IEnumerable xmlpath=null)

方法名称: Node2kvs ▕→ 取本结点的属性与值(查询4)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     取本结点的属性与值(查询4)
 参数: 
     xmlpath : 元素结点对象或查询串,缺省null为当前元素
 返回: 
     属性(前导符@)与值数组
 定义: 
     public WjwKvs Node2kvs(IEnumerable xmlpath = null)

方法名称: Node2WjwE4x ▕→ 取本结点转为WjwE4x对象

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     取本结点转为WjwE4x对象
 参数: 
     xmlpath : 元素结点对象或查询串,缺省null为当前元素
 返回: 
     WjwE4x对象
 定义: 
     public WjwE4x Node2WjwE4x(IEnumerable xmlpath = null)

方法名称: Arrays ▕→ 取结点组的属性与值(查询4)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     取结点组的属性与值(查询4)
 参数: 
     xmlpath : 元素结点对象组或查询串,缺省null为当前元素
 返回: 
     属性(前导符@)与值二维数组
 定义: 
     public Dictionary<string, string>[] Arrays(IEnumerable xmlpath = null)

方法名称: ArrayByName ▕→ 取同名结点组的属性与值(查询5)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     取同名结点组的属性与值(查询5)
 参数: 
     name : 结点名称
     xmlpath : 元素结点对象或查询串,缺省为根元素
 返回: 
     属性(前导符@)与值二维数组
 定义: 
     public Dictionary<string, string>[] ArrayByName(string name, IEnumerable xmlpath = null)

方法名称: ArrayChildren ▕→ 取本结点的孩子结点的属性与值(查询6)

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     取本结点的孩子结点的属性与值(查询6)
 参数: 
     xmlpath : 元素结点对象组或查询串,缺省null为当前元素
 返回: 
     属性(前导符@)与值二维数组
 定义: 
     public Dictionary<string, string>[] ArrayChildren(IEnumerable xmlpath = null)

方法名称: EachCB ▕→ xml树遍历

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     xml树遍历
 参数: 
     node : 起始结点
     cb : 回调函数:(定义如下)
         bool cb(node,level){}
         node:  当前的元素结点
         level: 当前结点的层深度(从1计)
         返回: false时结束循环
     level : 层深度初值
 返回: 
     完成true/中断退出fale
 定义: 
     public static bool EachCB(XmlElement node, Func<XmlElement,int,bool> cb,int level=0)

方法名称: EachCB<T> ▕→ xml树遍历的泛形版本

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     xml树遍历的泛形版本
 参数: 
     node : 起始结点
     cb : 回调函数:(定义如下)
         T newT = cb(node,oldT,level){}
         node:  当前的元素结点
         oldT:  用户泛形对象的输入值
         level: 当前结点的层深度(从1计)
         返回: newT用户泛形对象的输出值(用于下个回合的迭代), null时结束循环
     Tobj : 用户用于回调迭代时的泛形对象
     level : 层深度初值
 定义: 
     public static void EachCB<T>(XmlElement node, Func<XmlElement, T, int, T> cb, T Tobj, int level = 0)

方法名称: ToXmlValue ▕→ Xml特殊字符的转换

 命名空间: WjwLibs
 所属类: WjwLibs.WjwE4x:XmlDocument,IDisposable
 说明: 
     Xml特殊字符的转换
 参数: 
     chrs : 字串
     isRecv : 是否逆转
 返回: 
     适合于xml的值串
 定义: 
     public static string ToXmlValue(string chrs,bool isRecv=false)