收藏 分享(赏)

XMLHelper(C#版)(更新).doc

上传人:dreamzhangning 文档编号:2634097 上传时间:2018-09-24 格式:DOC 页数:45 大小:155.50KB
下载 相关 举报
XMLHelper(C#版)(更新).doc_第1页
第1页 / 共45页
XMLHelper(C#版)(更新).doc_第2页
第2页 / 共45页
XMLHelper(C#版)(更新).doc_第3页
第3页 / 共45页
XMLHelper(C#版)(更新).doc_第4页
第4页 / 共45页
XMLHelper(C#版)(更新).doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、1XMLHelper(C#版)(更新)默认分类 2008-10-07 15:39:59 阅读 1217 评论 12 字号:大中小 XMLHelper.cs 文件using System;using System.Data;using System.Configuration;using System.Linq;using System.Xml.Linq;using System.Xml;/ / FileName: XMLHelper/ Author: ziyou/ Create Date: 2008-9-28/ Email: ysli_ Version: 1.0.0.3/ Rewrite: 2

2、009-2-3/ public class XMLHelperpublic XMLHelper()/ TODO: Add constructor logic here2/#region private AppendChildprivate static void AppendChild(XmlDocument xDoc, XmlNode parentNode, params XmlParameter paras)foreach (XmlParameter xpar in paras)XmlNode newNode = xDoc.CreateNode(XmlNodeType.Element, x

3、par.Name, null);string ns = xpar.NamespaceOfPrefix = null ? “ : newNode.GetNamespaceOfPrefix(xpar.NamespaceOfPrefix);foreach (AttributeParameter attp in xpar.Attributes)XmlNode attr = xDoc.CreateNode(XmlNodeType.Attribute, attp.Name, ns = “ ? null : ns);attr.Value = attp.Value;newNode.Attributes.Set

4、NamedItem(attr);newNode.InnerText = xpar.InnerText;parentNode.AppendChild(newNode);#endregion#region private AddEveryNodeprivate static void AddEveryNode(XmlDocument xDoc, XmlNode parentNode, params XmlParameter paras)3XmlNodeList nlst = xDoc.DocumentElement.ChildNodes;foreach (XmlNode xns in nlst)i

5、f (xns.Name = parentNode.Name)AppendChild(xDoc, xns, paras);elseforeach (XmlNode xn in xns)if (xn.Name = parentNode.Name)AppendChild(xDoc, xn, paras);#endregion#region xmlDoc/ / 创建一个 XmlDocument 对象4/ / 文件名称或 XML 字符串public static XmlDocument xmlDoc(string PathOrString)tryXmlDocument xDoc = new XmlDoc

6、ument();if (System.IO.File.Exists(PathOrString)xDoc.Load(PathOrString);elsexDoc.LoadXml(PathOrString);return xDoc;catchreturn null;#endregion#region CreateXMLFile5/ / 创建一个 XML 文档/ / 文件名称,包括完整路径/ 根结点名称/ 元素节点名称/ XML 参数public static void CreateXMLFile(string fileFullName, string rootName, string elemNa

7、me, params XmlParameter paras)XmlDocument xDoc = new XmlDocument();XmlNode xn;xn = xDoc.CreateXmlDeclaration(“1.0“, “UTF-8“, null);xDoc.AppendChild(xn);XmlNode root = xDoc.CreateElement(rootName);xDoc.AppendChild(root);XmlNode ln = xDoc.CreateNode(XmlNodeType.Element, elemName, null);AppendChild(xDo

8、c, ln, paras);root.AppendChild(ln);tryxDoc.Save(fileFullName);catch6throw;/ / 创建一个 XML 文档/ / 文件名称,包括完整路径/ 根结点名称/ 元素节点对象/ XML 参数public static void CreateXMLFile(string fileFullName, string rootName, XmlParameter elemp, params XmlParameter paras)XmlDocument xDoc = new XmlDocument();XmlNode xn;xn = xDo

9、c.CreateXmlDeclaration(“1.0“, “UTF-8“, null);xDoc.AppendChild(xn);XmlNode root = xDoc.CreateElement(rootName);xDoc.AppendChild(root);XmlNode ln = xDoc.CreateNode(XmlNodeType.Element, elemp.Name, null);string ns = elemp.NamespaceOfPrefix = null ? “ : ln.GetNamespaceOfPrefix(elemp.NamespaceOfPrefix);f

10、oreach (AttributeParameter ap in elemp.Attributes)7XmlNode elemAtt = xDoc.CreateNode(XmlNodeType.Attribute, ap.Name, ns = “ ? null : ns);elemAtt.Value = ap.Value;ln.Attributes.SetNamedItem(elemAtt);AppendChild(xDoc, ln, paras);root.AppendChild(ln);tryxDoc.Save(fileFullName);catchthrow;/ / 创建一个 XML 文

11、档/ / 文件名称,包括完整路径/ 根结点对象/ 元素节点名称/ XML 参数public static void CreateXMLFile(string fileFullName, XmlParameter rootp, string elemName, params XmlParameter paras)8XmlDocument xDoc = new XmlDocument();XmlNode xn;xn = xDoc.CreateXmlDeclaration(“1.0“, “UTF-8“, null);xDoc.AppendChild(xn);XmlNode root = xDoc.C

12、reateElement(rootp.Name);string ns = rootp.NamespaceOfPrefix = null ? “ : root.GetNamespaceOfPrefix(rootp.NamespaceOfPrefix);foreach (AttributeParameter ap in rootp.Attributes)XmlNode rootAtt = xDoc.CreateNode(XmlNodeType.Attribute, ap.Name, ns = “ ? null : ns);rootAtt.Value = ap.Value;root.Attribut

13、es.SetNamedItem(rootAtt);xDoc.AppendChild(root);XmlNode ln = xDoc.CreateNode(XmlNodeType.Element, elemName, null);AppendChild(xDoc, ln, paras);root.AppendChild(ln);tryxDoc.Save(fileFullName);catch9throw;/ / 创建一个 XML 文档/ / 文件名称,包括完整路径/ 根结点对象/ 元素节点对象/ XML 参数public static void CreateXMLFile(string file

14、FullName, XmlParameter rootp, XmlParameter elemp, params XmlParameter paras)XmlDocument xDoc = new XmlDocument();XmlNode xn;xn = xDoc.CreateXmlDeclaration(“1.0“, “UTF-8“, null);xDoc.AppendChild(xn);XmlNode root = xDoc.CreateElement(rootp.Name);string ns = rootp.NamespaceOfPrefix = null ? “ : root.Ge

15、tNamespaceOfPrefix(rootp.NamespaceOfPrefix);foreach (AttributeParameter ap in rootp.Attributes)XmlNode rootAtt = xDoc.CreateNode(XmlNodeType.Attribute, ap.Name, ns = “ ? null : ns);rootAtt.Value = ap.Value;root.Attributes.SetNamedItem(rootAtt);10xDoc.AppendChild(root);XmlNode ln = xDoc.CreateNode(Xm

16、lNodeType.Element, elemp.Name, null);ns = elemp.NamespaceOfPrefix = null ? “ : ln.GetNamespaceOfPrefix(elemp.NamespaceOfPrefix);foreach (AttributeParameter ap in elemp.Attributes)XmlNode elemAtt = xDoc.CreateNode(XmlNodeType.Attribute, ap.Name, ns = “ ? null : ns);elemAtt.Value = ap.Value;ln.Attribu

17、tes.SetNamedItem(elemAtt);AppendChild(xDoc, ln, paras);root.AppendChild(ln);tryxDoc.Save(fileFullName);catchthrow;#endregion#region AddNewNode11/ / 添加新节点/ / 文件名称,包括完整路径/ 新节点的父节点对象/ XML 参数对象public static bool AddNewNode(string fileFullName, XmlNode parentNode, params XmlParameter paras)XmlDocument xD

18、oc = xmlDoc(fileFullName);if (parentNode.Name = xDoc.DocumentElement.Name)XmlNode newNode = xDoc.CreateNode(XmlNodeType.Element, xDoc.DocumentElement.ChildNodes0.Name, null);AppendChild(xDoc, newNode, paras);xDoc.DocumentElement.AppendChild(newNode);elseAddEveryNode(xDoc, parentNode, paras);xDoc.Sav

19、e(fileFullName);return true;/ 12/ 添加新节点/ / XmlDocument 对象/ 新节点的父节点对象/ XML 参数对象public static bool AddNewNode(XmlDocument xDoc, XmlNode parentNode, params XmlParameter paras)if (parentNode.Name = xDoc.DocumentElement.Name)XmlNode newNode = xDoc.CreateNode(XmlNodeType.Element, xDoc.DocumentElement.Chil

20、dNodes0.Name, null);AppendChild(xDoc, newNode, paras);xDoc.DocumentElement.AppendChild(newNode);elseAddEveryNode(xDoc, parentNode, paras);return true;/ / 添加新节点/ / XmlDocument 对象13/ 新节点的父节点名称/ XML 参数对象public static bool AddNewNode(XmlDocument xDoc, string parentName, params XmlParameter paras)XmlNode

21、 parentNode = GetNode(xDoc, parentName);if (parentNode = null) return false;if (parentNode.Name = xDoc.DocumentElement.Name)XmlNode newNode = xDoc.CreateNode(XmlNodeType.Element, xDoc.DocumentElement.ChildNodes0.Name, null);AppendChild(xDoc, newNode, paras);xDoc.DocumentElement.AppendChild(newNode);

22、elseAddEveryNode(xDoc, parentNode, paras);return true;/ / 添加新节点/ / 文件名称,包括完整路径/ 新节点的父节点名称14/ XML 参数对象public static bool AddNewNode(string fileFullName, string parentName, params XmlParameter paras)XmlDocument xDoc = xmlDoc(fileFullName);XmlNode parentNode = GetNode(xDoc, parentName);if (parentNode =

23、 null) return false;if (parentNode.Name = xDoc.DocumentElement.Name)XmlNode newNode = xDoc.CreateNode(XmlNodeType.Element, xDoc.DocumentElement.ChildNodes0.Name, null);AppendChild(xDoc, newNode, paras);xDoc.DocumentElement.AppendChild(newNode);elseAddEveryNode(xDoc, parentNode, paras);xDoc.Save(file

24、FullName);return true;#endregion#region AddAttribute/ / 添加节点属性15/ / XmlDocument 对象/ 节点对象/ 该节点的命名空间 URI/ 新属性名称/ 属性值public static void AddAttribute(XmlDocument xDoc, XmlNode node, string namespaceOfPrefix, string attributeName, string attributeValue)string ns = namespaceOfPrefix = null ? null : node.G

25、etNamespaceOfPrefix(namespaceOfPrefix);XmlNode xn = xDoc.CreateNode(XmlNodeType.Attribute, attributeName, ns = “ ? null : ns);xn.Value = attributeValue;node.Attributes.SetNamedItem(xn);/ / 添加节点属性/ / XmlDocument 对象/ 节点对象/ 该节点的命名空间 URI/ 节点属性参数public static void AddAttribute(XmlDocument xDoc, XmlNode n

26、ode, string namespaceOfPrefix, params AttributeParameter attps)string ns = namespaceOfPrefix = null ? null : node.GetNamespaceOfPrefix(namespaceOfPrefix);16foreach (AttributeParameter attp in attps)XmlNode xn = xDoc.CreateNode(XmlNodeType.Attribute, attp.Name, ns = “ ? null : ns);xn.Value = attp.Val

27、ue;node.Attributes.SetNamedItem(xn);/ / 添加节点属性/ / 文件名称,包括完整路径/ 节点对象/ 该节点的命名空间 URI/ 新属性名称/ 属性值public static void AddAttribute(string fileFullName, XmlNode node, string namespaceOfPrefix, string attributeName, string attributeValue)XmlDocument xDoc = xmlDoc(fileFullName);AddAttribute(xDoc, node, names

28、paceOfPrefix, attributeName, attributeValue);xDoc.Save(fileFullName);/ / 添加节点属性17/ / 文件名称,包括完整路径/ 节点对象/ 该节点的命名空间 URI/ 节点属性参数public static void AddAttribute(string fileFullName, XmlNode node, string namespaceOfPrefix, params AttributeParameter attps)XmlDocument xDoc = xmlDoc(fileFullName);AddAttribut

29、e(xDoc, node, namespaceOfPrefix, attps);xDoc.Save(fileFullName);/ / 添加节点属性/ / XmlDocument 对象/ 节点名称/ 该节点的命名空间 URI/ 新属性名称/ 属性值public static void AddAttribute(XmlDocument xDoc, string nodeName, string namespaceOfPrefix, string attributeName, string attributeValue)XmlNodeList xlst = xDoc.DocumentElement

30、.ChildNodes;for (int i = 0; i / 添加节点属性/ / XmlDocument 对象/ 节点名称/ 该节点的命名空间 URI/ 节点属性参数public static void AddAttribute(XmlDocument xDoc, string nodeName, string namespaceOfPrefix, params AttributeParameter attps)XmlNodeList xlst = xDoc.DocumentElement.ChildNodes;for (int i = 0; i / 添加节点属性/ / 文件名称,包括完整路

31、径/ 节点名称/ 该节点的命名空间 URI/ 新属性名称/ 属性值public static void AddAttribute(string fileFullName, string nodeName, string namespaceOfPrefix, string attributeName, string attributeValue)XmlDocument xDoc = xmlDoc(fileFullName);XmlNodeList xlst = xDoc.DocumentElement.ChildNodes;for (int i = 0; i / 添加节点属性/ / 文件名称,包

32、括完整路径/ 节点名称/ 该节点的命名空间 URI/ 节点属性参数public static void AddAttribute(string fileFullName, string nodeName, string namespaceOfPrefix, params AttributeParameter attps)XmlDocument xDoc = xmlDoc(fileFullName);XmlNodeList xlst = xDoc.DocumentElement.ChildNodes;for (int i = 0; i / 获取指定节点名称的节点对象/ / 文件名称,包括完整路径

33、/ 节点名称/ public static XmlNode GetNode(string fileFullName, string nodeName)XmlDocument xDoc = xmlDoc(fileFullName);if (xDoc.DocumentElement.Name = nodeName) return (XmlNode)xDoc.DocumentElement;XmlNodeList nlst = xDoc.DocumentElement.ChildNodes;foreach (XmlNode xns in nlst) / 遍历所有子节点if (xns.Name.ToL

34、ower() = nodeName.ToLower() return xns;elseXmlNode xn = GetNode(xns, nodeName);if (xn != null) return xn; / V1.0.0.3 添加节点判断22return null;/ / 获取指定节点名称的节点对象/ / 节点对象/ 节点名称/ public static XmlNode GetNode(XmlNode node, string nodeName)foreach (XmlNode xn in node)if (xn.Name.ToLower() = nodeName.ToLower()

35、 return xn;elseXmlNode tmp = GetNode(xn, nodeName);if (tmp != null) return tmp;return null;/ / 获取指定节点名称的节点对象/ 23/ XmlDocument 对象/ 节点名称/ public static XmlNode GetNode(XmlDocument xDoc, string nodeName)if (xDoc.DocumentElement.Name = nodeName) return (XmlNode)xDoc.DocumentElement;XmlNodeList nlst = xD

36、oc.DocumentElement.ChildNodes;foreach (XmlNode xns in nlst) / 遍历所有子节点if (xns.Name.ToLower() = nodeName.ToLower() return xns;elseXmlNode xn = GetNode(xns, nodeName);if (xn != null) return xn; / 添加节点判断, 避免只查询一个节点return null;/ / 获取指定节点名称的节点对象/ / XmlDocument 对象/ 节点索引/ 节点名称24public static XmlNode GetNode

37、(XmlDocument xDoc, int Index, string nodeName)XmlNodeList nlst = xDoc.DocumentElement.ChildNodes;if (nlst.Count / 获取指定节点名称的节点对象/ / 文件名称,包括完整路径/ 节点索引/ 节点名称public static XmlNode GetNode(string fileFullName, int Index, string nodeName)XmlDocument xDoc = xmlDoc(fileFullName);XmlNodeList nlst = xDoc.Docu

38、mentElement.ChildNodes;if (nlst.Count / 获取指定节点名称的节点对象/ / 节点对象/ 节点名称/ 节点内容public static XmlNode GetNode(XmlNode node, string nodeName, string innerText)foreach (XmlNode xn in node)if (xn.Name.ToLower() = nodeName.ToLower() elseXmlNode tmp = GetNode(xn, nodeName, innerText);if (tmp != null) return tmp

39、;return null;26/ / 获取指定节点名称的节点对象/ / XmlDocument 对象/ 节点名称/ 节点内容public static XmlNode GetNode(XmlDocument xDoc, string nodeName, string innerText)XmlNodeList nlst = xDoc.DocumentElement.ChildNodes;foreach (XmlNode xns in nlst) / 遍历所有子节点if (xns.Name.ToLower() = nodeName.ToLower() XmlNode tmp = GetNode(

40、xns, nodeName, innerText);if (tmp != null) return tmp;return null;/ / 获取指定节点名称的节点对象/ / XmlDocument 对象/ XML 参数public static XmlNode GetNode(XmlDocument xDoc, XmlParameter xpar)27return GetNode(xDoc, xpar.Name, xpar.InnerText);/ / 获取指定节点名称的节点对象/ / 节点对象/ XML 参数public static XmlNode GetNode(XmlNode node

41、, XmlParameter xpar)return GetNode(node, xpar.Name, node.InnerText);#endregion#region UpdateNode/ / 修改节点的内容/ / 修改的节点对象/ XML 参数对象public static void UpdateNode(XmlNode node, XmlParameter para)node.InnerText = para.InnerText;for (int i = 0; i / 修改节点的内容/ / 父节点对象/ 该节点的索引/ 修改后的内容public static void UpdateN

42、ode(XmlNode node, int childIndex, string nodeText)node.ChildNodeschildIndex.InnerText = nodeText;/ / 修改节点的内容/ / 修改的节点对象/ 修改后的内容public static void UpdateNode(XmlNode node, string nodeText)node.InnerText = nodeText;/ / 修改节点的内容/ 29/ XMLDocument 对象/ XML 参数对象public static void UpdateNode(XmlDocument xDoc

43、, int Index, XmlParameter para)XmlNode node = GetNode(xDoc, Index, para.Name);UpdateNode(node, para);/ / 修改节点的内容/ / XMLDocument 对象/ 父节点名称/ 该节点的索引/ 修改后的内容/ 修改后的值,如果没有,那么该值为 nullpublic static void UpdateNode(XmlDocument xDoc, int Index, string nodeName, int childIndex, string nodeText)XmlNode node = G

44、etNode(xDoc, Index, nodeName);UpdateNode(node, childIndex, nodeText);/ / 修改节点的内容/ 30/ XMLDocument 对象/ 修改的节点名称/ 修改后的内容/ 修改后的值,如果没有,那么该值为 nullpublic static void UpdateNode(XmlDocument xDoc, int Index, string nodeName, string nodeText)XmlNode node = GetNode(xDoc, Index, nodeName);UpdateNode(node, nodeText);/ / 修改节点的内容/ / 文件名称,包括完整路径/ XML 参数对象public static void UpdateNode(string fileFullName, int Index, XmlParameter para)XmlDocument xDoc = xmlDoc(fileFullName);UpdateNode(xDoc, Index, para);xDoc.Save(fileFullName);/ / 修改节点的内容/ / 文件名称,包括完整路径

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报