CYQ.Data 数据层框架CYQ.Data 是一款由路过秋天创作的支持多数据库应用[Txt,Xml,Access,MSSQL,Oracle,SQLite,MySql]的底层数据库操作类库,使用本类库可以轻松快速开发项目(QQ群:6033006)。 |
CYQ.Data.Xml XmlHelper 帮助类的使用帮助
快速使用帮助 |
|
|
| #楼主 |
PS:V5版本已变更名称为XHtmlAction类名。 一:XmlHelper 类的说明 使用此类,可以轻松操作Xml/Html。
二:XmlHelper 使用说明: 1:实例化: XmlHelper doc=new XmlHelper(...);
方法原型: public XmlHelper()//默认构造函数[操作无名称空间的Xml] public XmlHelper(bool forHtml)//参数为true时表示操作Html,为false时表示操作xml public XmlHelper(string nameSpaceUrl)//操作名称空间的Xml 2:Xml/Html加载: 方法原型: public void LoadXml(string xml)//从字符串加载 public bool Load(string absFilePath)//从文件路径加载 public bool Load(string absFilePath, XmlCacheLevel level)//带设置xml/html缓存级别 示例代码: XmlHelper doc = new XmlHelper (true);//操作html
if (doc.Load(Server.MapPath("html/index.html"), XmlCacheLevel.Hour)) { //加载html成功,并缓存html 1小时 } 2:单结点查询: 方法原型: public XmlNode GetByID(string id)//根据ID查找结点
public XmlNode GetByID(string id, XmlNode parentNode)//在parentNode节点下根据ID找结点 public XmlNode GetByName(string name)//根据Name查找结点 public XmlNode GetByName(string name, XmlNode parentNode)) public XmlNode Get(string tag, string attr, string value, XmlNode parentNode)//根据标签,属性及属性值和是否带父节点查找一个结点。 示例: xml示例节点: <p id="pID">这里有pID</p><div id="divID" ><p id="pID">pID又来一个</p></div> XmlNode node = doc.GetByID("pID", doc.GetByID("divID"));//获取里面的ID节点 3:列表结点查询: 方法原型: public XmlNodeList GetList(string tag)
public XmlNodeList GetList(string tag, XmlNode parentNode) public XmlNodeList GetList(string tag, string attr) public XmlNodeList GetList(string tag, string attr, XmlNode parentNode) public XmlNodeList GetList(string tag, string attr, string value) public XmlNodeList GetList(string tag, string attr, string value, XmlNode parentNode) 示例: xml示例节点: <p id="pID">这里有pID</p><div id="divID" ><p id="pID">pID又来一个</p></div> XmlNodeList nodeList = doc.GetList("p","id","pid");//获取所有p的节点 4:创建结点: 方法原型: public XmlNode CreateNode(string tag, string text, params string[] attrAndValue) public void CreateNodeTo(XmlNode parentNode, string tag, string text, params string[] attrAndValue) 示例: xml示例节点: 一开始节点:<div id="divID"></div> 代码创建:doc.CreateNodeTo(doc.GetByID("divID"), "p", "pID又来一个", "id", "pID"); 创建后变成:<div id="divID" ><p id="pID">pID又来一个</p></div> 5:添加结点: 方法原型: public void AppendNode(XmlNode parentNode, XmlNode childNode) public void AppendNode(XmlNode parentNode, XmlNode childNode, int position)//position为将childNode放在parentNode的第N个子节点之后 6:删除结点: 方法原型: public void Clear(XmlNode node)//保留节点,只清除内容和属性
public void Remove(XmlNode node)//删除节点 public void Remove(string id)//根据节点ID删除节点 public void RemoveChild(string id, int index)//移除某ID节点下的第N个子节点 public void RemoveChild(XmlNode node, int index)//移除某节点下的第N个子节点 public void RemoveAttrList(params string[] attrNames)//移除整个文档的指定属性 7:结点交互|替换|插入[前后] 方法原型: public void InterChange(XmlNode xNodeFirst, XmlNode xNodeLast)//两节点互换位置 public void ReplaceNode(XmlNode newNode, XmlNode oldNode)//节点替换 public void InsertAfter(XmlNode newNode, XmlNode refNode)//将newNode插入到refNode之后 public void InsertBefore(XmlNode newNode, XmlNode refNode)//将newNode插入到refNode之前 8:节点判断: 方法原型: public bool Contains(string id)//是否存在某ID节点 public bool Contains(string id, XmlNode parentNode)//在parentNode下是否存在某ID节点 9:属性操作 方法原型: public bool HasAttr(string nodeID, string attrName)//某节点是否存在某属性 public bool HasAttr(XmlNode node, string attrName) public string GetAttrValue(string nodeID, string attrName, params string[] defaultValue)//获取某节点的属性值,并允许设置默认值 public string GetAttrValue(XmlNode node, string attrName, params string[] defaultValue) public void RemoveAttr(string nodeID, params string[] attrNames)//移除节点指定属性 public void RemoveAttr(XmlNode node, params string[] attrNames) 10:保存为xml/html功能 方法原型: public void Save()//保存并替换原始加载文件 public void Save(string fileName)//保存到指定的文件路径 三:与CYQ.Data.Table的交互功能 1:原生的赋值操作 方法原型: public void Set(string id, string value)//为ID节点的InnerXml属性赋值
public void Set(string id, SetType setType, params string[] values)//为ID节点的setType[不同属性]赋值,如果是A链接,可赋多个值。 public void Set(XmlNode node, SetType setType, params string[] values) 示例: 原始:<a id="aID">这是一个原始A链接</id> doc.Set("aID", SetType.A,"这是A链接","http://cyqdata.com","_blank"); 结果:<a id="aID" href=http://cyqdata.com target="_blank">这是A链接</id> 2:与MDataRow的交互[ID=任意三个字母前缀+字段名称] 方法原型: public void LoadData(MDataRow row)//加载行数据
public void SetFor(string id)//将row的数据赋给ID节点的InnerXml属性 public void SetFor(string id, SetType setType)//将row的数据赋给ID节点的指定属性 public void SetFor(string id, SetType setType, params string[] values)//最后参数允许格式化值 示例: 原始<span id="labHits">点击</span> doc.SetFor("labHits", SetType.InnerText, ValueReplace.Source + "(" + ValueReplace.New + ")"); 结果:<span id="labhits">点击(12)</span> ValueReplace.Source:指原来节点属性的值 ValueReplace.New: 指数据库的值 3:与MDataTable的交互 方法原型: public void LoadData(MDataTable table)//加载表格 //SetForeach将ID节点复制并循环 示例一:SetForeach(string id, string text, params object[] formatValues) 原始标签:<select id="selClassID"></select>
doc.LoadData(table);//加载表格
doc.SetForeach("selClassID", "<option value="{0}" >{1}</option>", Class.ID, IsUserLang ? Class.Name : Class.PKey); 结果标签:<select id="selClassID"><option value="1">标识1</option>....</select>
这语句将循环出一个下拉列表。 示例二:SetForeach(string id, SetType setType, params object[] formatValues) 原始标签:<select id="selClassID"><option value="{0}" >{1}</option></select> doc.SetForeach("selClassID", SetType.InnerXml,, Class.ID, IsUserLang ? Class.Name : Class.PKey); 结果标签:和上面一样。 示例三:循环格式化: doc.OnForeach += new XmlHelper.SetForeachEventHandler(Document_OnForeach); string Document_OnForeach(string text, object[] values, int row) //text为:<option value="{0}" >{1}</option> values[1]=“标识2”; return text; 结果标签:<select id="selClassID"><option value="2">标识2</option>....</select> |
游客[注册][124.206.31.*]2013/6/11 17:18:15 | #1 | |
不错 |
发表评论
论坛公告
帖子搜索
最新帖子
最新评论
- 请教博主。我mysql的提示 V5.7.7.4 MySql.xxxx:check the tablename "tbl_site_info" is exist? error:ExeDataReader():Expression #1 of ORDER BY clause is not in SELECT list, references column 'information_schema.s1.ORDINAL_POSITION' which is not in SELECT list; this is incompatible with DISTINCT 配置如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="Conn" connectionString="host=192.168.3.101;Port=3306;Database=xxxxx;uid=root;pwd=2017" providerName="MySql.Data.MySqlClient"/> </connectionStrings> </configuration>
- 查询语句有点问题,软件启动时查询语句可以从数据库查询出数据,软件一直运行时无论怎么修改数据库,查询出来的还是老数据,不知道是为什么
- 我语句中用到了union all而且两个查询都有查询条件,action.select总是不成功,不知道有没有什么好的解决办法,谢谢
- 大神,如果我想通过一个对象(从数据映射过来的)要插入的话,我需要遍历字段然后每个set一下吗?有没有更好的方法??
- 真心好用,想问下秋天直接拼写sql怕注入吗
- V4.5后,好多方法都改变了,求来个新的日志帮助
- 請問大神V5源碼要多少錢 我是和交流過的
- 楼主,,从数据库里查出来并绑定datagridview,但是显示的都是数据库里的英文名,怎么改??好纠结啊这个。。。。
- 我想问一下,主从表添加怎样处理
- 10年就过了!!!!