<返主目录 ▕▏C#基础库 WjwLibs: V5.0.1▕▏帮助文档 : XML 兼容e4x操作类 ▕▏ 编译日期: 2022-10-19▕▏ Email: wujwmail@163.com
命名空间: 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 = null, bool isSave = true)
ReName
▕→ 更换一个元素结点的名称命名空间: WjwLibs 所属类: WjwLibs.WjwE4x : XmlDocument, IDisposable 说明: 更换一个元素结点的名称 参数: element : 元素结点 NewName : 新名称 定义: public void ReName(XmlElement element, string NewName)
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)
GetChildrenKvs
▕→ 取指定结点的孩子结点的属性与值(查询7)命名空间: WjwLibs 所属类: WjwLibs.WjwE4x : XmlDocument, IDisposable 说明: 取指定结点的孩子结点的属性与值(查询7) 参数: xmlpath : 元素结点对象组或查询串,缺省null为当前元素 返回: WjwKvs 定义: public WjwKvs GetChildrenKvs(IEnumerable xmlpath = null)
ToObj
▕→ 转为对象命名空间: WjwLibs 所属类: WjwLibs.WjwE4x : XmlDocument, IDisposable 说明: 转为对象 参数: node : 结点句柄 addAt : 叶子结点无文本值时(纯属性结点),属性名称前是否加@前缀 返回: object 定义: public object ToObj(XmlElement node, bool addAt = false)
GetTextNodeValue
▕→ 得到Text结点的值命名空间: WjwLibs 所属类: WjwLibs.WjwE4x : XmlDocument, IDisposable 说明: 得到Text结点的值 参数: node : 结点 返回: 定义: public string GetTextNodeValue(XmlNode node)
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)