XML操作:1.XML类(http://blog.csdn.net/happy09li/article/details/7460521)
- XML绑定TreeView
- private void XmlOperation_Load(object sender, EventArgs e)
- {
- path = AppDomain.CurrentDomain.BaseDirectory + @"NameList.xml";
- xml.Load(path);//加载xml文件
- bindTvXml();
- }
- /// <summary>
- /// 绑定TreeView
- /// </summary>
- private void bindTvXml()
- {
- for (int i = 0; i < xml.DocumentElement.ChildNodes.Count; i++)
- {
- XmlNode Xnode = xml.DocumentElement.ChildNodes[i];
- TreeNode node = new TreeNode();
- node.Text = Xnode.Attributes["name"].Value;
- node.Tag = Xnode;
- bindChildNode(node, Xnode);//绑定子节点
- TvXml.Nodes.Add(node);
- TvXml.HideSelection = false;
- }
- }
- /// <summary>
- /// 递归绑定子节点
- /// </summary>
- /// <param name="node"></param>
- /// <param name="xml"></param>
- private void bindChildNode(TreeNode node, XmlNode xml)
- {
- for (int i = 0; i < xml.ChildNodes.Count; i++)
- {
- TreeNode Childnode = new TreeNode();
- XmlNode ChildXml = xml.ChildNodes[i];
- Childnode.Text = ChildXml.Value;
- Childnode.Name = "1";
- Childnode.Tag = xml.ChildNodes[i];
- if (ChildXml.HasChildNodes)
- {
- if (ChildXml.ChildNodes[0].NodeType == XmlNodeType.Text)
- Childnode.Text = ChildXml.ChildNodes[0].InnerText;
- else
- bindChildNode(Childnode, ChildXml);
- }
- node.Nodes.Add(Childnode);
- }
- }
- public class ManageXML
- {
- /// <summary>
- /// 返回用户操作的SQL语句
- /// </summary>
- /// <param name="sqlNodeName">XML的操作节点</param>
- /// <returns>操作的sql语句</returns>
- public static string GetXMLPath(string strXMlFileName)
- {
- string m_strFullPath = "";
- Assembly Asm = Assembly.GetExecutingAssembly();
- //获取文件的路径
- //m_strFullPath = Asm.Location.Substring(0, (Asm.Location.LastIndexOf("\\") + 1)) + "XMLSql.xml";
- m_strFullPath = AppDomain.CurrentDomain.BaseDirectory + "XMLLibrary\\" + strXMlFileName;
- return m_strFullPath;
- }
- /// <summary>
- /// 获取XML数据库中的数据的方法
- /// </summary>
- /// <param name="strFilePath">传入文件路径</param>
- /// <returns>返回一个数据集</returns>
- public static DataSet GetAllDataFromXML(string strFilePath)
- {
- DataSet ds = new DataSet();
- FileInfo fileInfo = new FileInfo(strFilePath);
- if (fileInfo.Exists)
- {
- try
- {
- ds.ReadXml(strFilePath);
- }
- catch { }
- }
- else
- {
- ds = null;
- }
- if (ds != null)
- {
- if (ds.Tables[0].Rows.Count < 1)
- ds = null;
- }
- return ds;
- }
- /// <summary>
- /// 获取指定目录下所有子节点的值
- /// </summary>
- /// <param name="strFileName">文件路径</param>
- /// <param name="nodeDir">节点目录</param>
- /// <returns></returns>
- public static Hashtable GetNodeList(string strFileName, string nodeDir)
- {
- Hashtable strNodeList = new Hashtable();
- try
- {
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.Load(strFileName);
- XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点
- foreach (XmlNode xn in nodeList) //遍历所有子节点
- {
- XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型
- strNodeList.Add(xe.GetAttribute("id").ToString(), xe.InnerText.Trim());
- }
- }
- catch (Exception)
- {
- throw;
- }
- return strNodeList;
- }
- /// <summary>
- /// 获取指定节点的值
- /// </summary>
- /// <param name="strFileName">文件路径</param>
- /// <param name="nodeName">节点名称</param>
- /// <param name="value">设置后的值</param>
- /// <param name="nodeDir">指定节点所在的节点目录</param>
- /// <returns></returns>
- public static string GetNodeValue(string strFileName, string nodeName, string nodeDir)
- {
- string value = null;
- try
- {
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.Load(strFileName);
- XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点
- foreach (XmlNode xn in nodeList) //遍历所有子节点
- {
- XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型
- if (xe.Name == nodeName)
- {
- value = xe.InnerText.Trim();
- break;
- }
- }
- }
- catch (Exception exp)
- {
- throw exp;
- }
- return value;
- }
- /// <summary>
- /// 获取指定节点下面对应属性的值
- /// </summary>
- /// <param name="strFileName">文件路径</param>
- /// <param name="nodeName">节点名称</param>
- /// <param name="nodeDir">指定节点所在的节点目录</param>
- /// <param name="attribute">节点对应的属性名称</param>
- /// <returns></returns>
- public static string GetNodeValue(string strFileName, string nodeName, string nodeDir, string attribute)
- {
- string value = null;
- try
- {
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.Load(strFileName);
- XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点
- foreach (XmlNode xn in nodeList) //遍历所有子节点
- {
- XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型
- if (xe.Name == nodeName)
- {
- //value = xe.InnerText.Trim();
- value = (xe).Attributes[attribute].Value;
- break;
- }
- }
- }
- catch (Exception exp)
- {
- throw exp;
- }
- return value;
- }
- /// <summary>
- /// 修改指定结点值
- /// </summary>
- /// <param name="strFileName">文件路径</param>
- /// <param name="nodeName">节点名称</param>
- /// <param name="value">设置后的值</param>
- /// <param name="nodeDir">指定节点所在的节点目录</param>
- /// <returns></returns>
- public static bool UpdateNoteValue(string strFileName, string nodeName, string value, string nodeDir)
- {
- bool isSucceed = false;
- try
- {
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.Load(strFileName);
- XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点
- foreach (XmlNode xn in nodeList) //遍历所有子节点
- {
- XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型
- if (xe.Name == nodeName)
- {
- xe.InnerText = value;
- isSucceed = true;
- break;
- }
- }
- xmlDoc.Save(strFileName);
- }
- catch (Exception exp)
- {
- throw exp;
- }
- return isSucceed;
- }
- /// <summary>
- /// 修改指定结点值
- /// </summary>
- /// <param name="strFileName">文件路径</param>
- /// <param name="nodeName">节点名称</param>
- /// <param name="value">设置后的值</param>
- /// <param name="nodeDir">指定节点所在的节点目录</param>
- /// <returns></returns>
- public static bool UpdateNoteValue(string strFileName, string nodeName, string value, string nodeDir, string attribute, string attributeValue)
- {
- bool isSucceed = false;
- try
- {
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.Load(strFileName);
- XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点
- foreach (XmlNode xn in nodeList) //遍历所有子节点
- {
- XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型
- if (xe.Name == nodeName)
- {
- xe.InnerText = value;
- (xe).Attributes[attribute].Value = attributeValue;
- isSucceed = true;
- break;
- }
- }
- xmlDoc.Save(strFileName);
- }
- catch (Exception exp)
- {
- throw exp;
- }
- return isSucceed;
- }
- /// <summary>
- /// 修改指定结点值
- /// </summary>
- /// <param name="strFileName">文件路径</param>
- /// <param name="nodeName">节点名称</param>
- /// <param name="value">设置后的值</param>
- /// <param name="nodeDir">指定节点所在的节点目录</param>
- /// <returns></returns>
- public static bool UpdateNoteValue(string strFileName, Hashtable hstable, string nodeDir)
- {
- bool isSucceed = false;
- try
- {
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.Load(strFileName);
- XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点
- foreach (DictionaryEntry item in hstable)
- {
- foreach (XmlNode xn in nodeList) //遍历所有子节点
- {
- XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型
- if (xe.Name == item.Key.ToString())
- {
- xe.InnerText = item.Value.ToString();
- isSucceed = true;
- break;
- }
- }
- }
- xmlDoc.Save(strFileName);
- }
- catch (Exception exp)
- {
- throw exp;
- }
- return isSucceed;
- }
- }
- /// <summary>
- /// 移除选定节点集的所有属性
- /// </summary>
- /// <param name="xmlPathNode"></param>
- public void RemoveAllAttribute(string xmlPathNode)
- {
- XmlNodeList xnl = objXmlDoc.SelectNodes(xmlPathNode);
- foreach (XmlNode xn in xnl)
- {
- xn.Attributes.RemoveAll();
- }
- }
- public void DeleteNode(string Node)
- {
- //刪除一个节点。
- try
- {
- string mainNode = Node.Substring(0, Node.LastIndexOf("/"));
- objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
- }
- catch
- {
- //throw;
- return;
- }
- }
- public void InsertNodeWithChild(string mainNode, string ChildNode, string Element, string Content)
- {
- //插入一节点和此节点的一子节点。
- XmlNode objRootNode = objXmlDoc.SelectSingleNode(mainNode);
- XmlElement objChildNode = objXmlDoc.CreateElement(ChildNode);
- objRootNode.AppendChild(objChildNode);//插入节点
- XmlElement objElement = objXmlDoc.CreateElement(Element);
- objElement.InnerText = Content;
- objChildNode.AppendChild(objElement);//插入子节点
- }
- /// <summary>
- /// 插入一个节点,带一个Attribute和innerText
- /// </summary>
- /// <param name="mainNode"></param>
- /// <param name="Element">节点名称</param>
- /// <param name="Attrib">Attribute名称</param>
- /// <param name="AttribContent">Attribute值</param>
- /// <param name="Content">innerText值</param>
- public void InsertNode(string mainNode, string Element, string Attrib, string AttribContent, string Content)
- {
- XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);
- XmlElement objElement = objXmlDoc.CreateElement(Element);
- objElement.SetAttribute(Attrib, AttribContent);
- objElement.InnerText = Content;
- objNode.AppendChild(objElement);
- }
- /// <summary>
- /// 插入一个节点,带一个Attribute
- /// </summary>
- /// <param name="mainNode"></param>
- /// <param name="Element">节点名称</param>
- /// <param name="Attrib">Attribute名称</param>
- /// <param name="AttribContent">Attribute值</param>
- public void InsertNode(string mainNode, string Element, string Attrib, string AttribContent)
- {
- XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);
- XmlElement objElement = objXmlDoc.CreateElement(Element);
- objElement.SetAttribute(Attrib, AttribContent);
- objNode.AppendChild(objElement);
- }
- /// <summary>
- /// 插入一个节点
- /// </summary>
- /// <param name="mainNode"></param>
- /// <param name="Element">节点名称</param>
- public void InsertNode(string mainNode, string Element)
- {
- XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);
- XmlElement objElement = objXmlDoc.CreateElement(Element);
- objNode.AppendChild(objElement);
- }
- //<summary>
- //插入一个节点,带多个属性和一个inner text
- //</summary>
- public void InsertNode(string mainNode, string elementName, string[] arrAttributeName, string[] arrAttributeContent, string elementContent)
- {
- try
- {
- XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);
- XmlElement objElement = objXmlDoc.CreateElement(elementName);
- for (int i = 0; i <= arrAttributeName.GetUpperBound(0); i++)
- {
- objElement.SetAttribute(arrAttributeName[i], arrAttributeContent[i]);
- }
- objElement.InnerText = elementContent;
- objNode.AppendChild(objElement);
- }
- catch
- {
- throw;
- //string t = mainNode;
- }
- }
- ///<summary>
- ///插入一个节点,带多个属性
- ///</summary>
- public void InsertNode(string mainNode, string elementName, string[] arrAttributeName, string[] arrAttributeContent)
- {
- try
- {
- XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);
- XmlElement objElement = objXmlDoc.CreateElement(elementName);
- for (int i = 0; i <= arrAttributeName.GetUpperBound(0); i++)
- {
- objElement.SetAttribute(arrAttributeName[i], arrAttributeContent[i]);
- }
- //objElement.InnerText = elementContent;
- objNode.AppendChild(objElement);
- }
- catch
- {
- throw;
- //string t = mainNode;
- }
- }
- /// <summary>
- /// 插入子节点(带多个属性)
- /// </summary>
- /// <param name="parentNode">要插入的父节点</param>
- /// <param name="elementName">插入的节点名称</param>
- /// <param name="arrAttributeName">属性名称[数组]</param>
- /// <param name="arrAttributeContent">属性内容[数组]</param>
- /// <param name="elementContent">节点内容</param>
- public void AddChildNode(string parentNodePath, string elementName, string[] arrAttributeName, string[] arrAttributeContent, string elementContent)
- {
- try
- {
- XmlNode parentNode = objXmlDoc.SelectSingleNode(parentNodePath);
- XmlElement objChildElement = objXmlDoc.CreateElement(elementName);
- for (int i = 0; i <= arrAttributeName.GetUpperBound(0); i++)
- {
- objChildElement.SetAttribute(arrAttributeName[i], arrAttributeContent[i]);
- }
- objChildElement.InnerText = elementContent;
- parentNode.AppendChild(objChildElement);
- }
- catch
- {
- return;
- }
- }
- /// <summary>
- /// 插入子节点(将内容以CData形式写入)
- /// </summary>
- /// <param name="parentNode">要插入的父节点</param>
- /// <param name="elementName">插入的节点名称</param>
- /// <param name="elementContent">节点内容</param>
- public void AddChildNodeCData(string parentNodePath, string elementName, string elementContent)
- {
- try
- {
- XmlNode parentNode = objXmlDoc.SelectSingleNode(parentNodePath);
- XmlElement objChildElement = objXmlDoc.CreateElement(elementName);
- //写入cData数据
- XmlCDataSection xcds = objXmlDoc.CreateCDataSection(elementContent);
- objChildElement.AppendChild(xcds);
- parentNode.AppendChild(objChildElement);
- }
- catch
- {
- return;
- }
- }
- /// <summary>
- /// 插入子节点(仅内容,不带属性)
- /// </summary>
- /// <param name="parentNode">要插入的父节点</param>
- /// <param name="elementName">插入的节点名称</param>
- /// <param name="elementContent">节点内容</param>
- public void AddChildNode(string parentNodePath, string elementName, string elementContent)
- {
- try
- {
- XmlNode parentNode = objXmlDoc.SelectSingleNode(parentNodePath);
- XmlElement objChildElement = objXmlDoc.CreateElement(elementName);
- objChildElement.InnerText = elementContent;
- parentNode.AppendChild(objChildElement);
- }
- catch
- {
- return;
- }
- }
- /// <summary>
- /// 根据xpath值查找节点
- /// </summary>
- /// <param name="NodePath">要查找节点的xpath值</param>
- /// <returns>找到返回true,否则返回true</returns>
- public bool FindNode(string NodePath)
- {
- try
- {
- if (objXmlDoc.SelectSingleNode(NodePath) != null)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- catch
- {
- return false;
- }
- }
XML操作:1.XML类(http://blog.csdn.net/happy09li/article/details/7460521)的更多相关文章
- golang操作memcached 转自https://blog.csdn.net/weixin_37696997/article/details/78760397
go使用memcached需要第三方的驱动库,这里有一个库是memcached作者亲自实现的,代码质量效率肯定会有保障 1:安装 go get github.com/bradfitz/gomemcac ...
- maven 依赖文件 pom.xml 编译 mvn compile 运行 不用mvn exec:java -Dexec.mainClass="hello.HelloWorld" 打成jar包 mvn package mvn install http://blog.csdn.net/yaya1943/article/details/48464371
使用maven编译Java项目 http://blog.csdn.net/yaya1943/article/details/48464371 使用"mvn clean"命令清除编 ...
- 集合各个实现类的底层实现原理 ----- 原文地址:https://blog.csdn.net/qq_25868207/article/details/55259978
ArrayList实现原理要点概括 参考文献: http://zhangshixi.iteye.com/blog/674856l https://www.cnblogs.com/leesf456/p/ ...
- JSON.parseObject将json字符串转换为bean类,是否大小写敏感区分---https://blog.csdn.net/mathlpz126/article/details/80684034
JSON.parseObject将json字符串转换为bean类,是否大小写敏感区分 https://blog.csdn.net/mathlpz126/article/details/80684034
- UML类图几种关系的总结(转载 http://blog.csdn.net/tianhai110/article/details/6339565 )
http://blog.csdn.net/tianhai110/article/details/6339565
- Java类和对象 详解(一)---写的很好通俗易懂---https://blog.csdn.net/wei_zhi/article/details/52745268
https://blog.csdn.net/wei_zhi/article/details/52745268
- RedHat如何关闭防火墙 : http://blog.csdn.net/chongxin1/article/details/76072758
版本号:RedHat6.5 JDK1.8 Hadoop2.7.3 hadoop 说明:从版本2开始加入了Yarn这个资源管理器,Yarn并不需要单独安装.只要在机器上安装了JDK就可以直接安 ...
- mybaits入门(含实例教程和源码) http://blog.csdn.net/u013142781/article/details/50388204
前言:mybatis是一个非常优秀的存储过程和高级映射的优秀持久层框架.大大简化了,数据库操作中的常用操作.下面将介绍mybatis的一些概念和在eclipse上的实际项目搭建使用. 一.mybati ...
- http://blog.csdn.net/LANGXINLEN/article/details/50421988
GitHub上史上最全的Android开源项目分类汇总 今天在看博客的时候,无意中发现了 @Trinea在GitHub上的一个项目 Android开源项目分类汇总, 由于类容太多了,我没有一个个完整地 ...
随机推荐
- EasyUi datagrid 单选框选中事件
Easyui datagrid中的单选框默认是这样定义的 columns: [[ { field: 'CK', title: '', checkbox: true, width: 30 }]]. 平常 ...
- 漫谈 polling 和 Websocket
Http被设计成了一个单向的通信的协议,即客户端发起一个request,然后服务器回应一个response.这让服务器很为恼火:我特么才是老大,我居然不能给小弟发消息... 轮询 老大发火了,小弟们自 ...
- dos文件批量转换成unix文件
对于经常在windows环境下和linux环境同时使用的文件(如在windows系统下编写,在linux环境下编译的文件), 常常存在这样的问题:由于两种系统的格式文件格式不同,导致程序出现不期望的问 ...
- 使用val()另一个妙用------选中select/checkbox/radio的值
一直认为val()方法只有两个功能:1.能设置元素的值,2.获取元素的值.知道val()方法还有另外一个妙用,就是它能使select(下拉列表框).checkbox(多选框)和radio(单选框)相应 ...
- ubuntu1204上不能正常用emacs配合gocode进行自动补全
我按gocode的页面https://github.com/nsf/gocode上去做,可是还是未成功,,我确认auto-complete在c-mode中是可以使用的,因为有补全出来了, 我再找了ht ...
- 自定义控件:抽屉SlidingDrawer——wrap_content非全屏
android:allowSingleTap 指示抽屉是否可以打开/通过手柄上的一个水龙头关闭. android:animateOnClick 表示所述抽屉是否应该打开/与当用户点击手柄动画关闭 ...
- UE 使用技巧
一.关于正则表达式的使用 删除空行: 替换 %[ ^t]++^p 为 空串 替换回车换行符:替换^p 为 空串 删除行尾空格: 替换 [ ^t]+$ 为 空串 删除行首空格: 替换 %[ ^t]+ 为 ...
- (原创)LAMP教程5-配置VirtualBox虚拟机中centos6.4的网卡
(原创)LAMP教程5-配置VirtualBox虚拟机中centos6.4的网卡 是的,今天我们要讲的是如何配置VirtualBox虚拟机中centos6.4的网卡,毕竟我们是要做网站开发的,没有网络 ...
- codeforces 691D Swaps in Permutation DFS
这个题刚开始我以为是每个交换只能用一次,然后一共m次操作 结果这个题的意思是操作数目不限,每个交换也可以无限次 所以可以交换的两个位置连边,只要两个位置连通,就可以呼唤 然后连通块内排序就好了 #in ...
- duilib中控件拖拽功能的实现方法(附源码)
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41144283 duilib库中原本没有显示的对控件增加拖拽的功能,而实际 ...