• XML操作:1.XML类(http://blog.csdn.net/happy09li/article/details/7460521)


    1. XML绑定TreeView  
    2.   
    3.  private void XmlOperation_Load(object sender, EventArgs e)  
    4.         {  
    5.             path = AppDomain.CurrentDomain.BaseDirectory + @"NameList.xml";  
    6.             xml.Load(path);//加载xml文件  
    7.             bindTvXml();  
    8.         }  
    9.   
    10.   
    11.         /// <summary>  
    12.         /// 绑定TreeView  
    13.         /// </summary>  
    14.         private void bindTvXml()  
    15.         {  
    16.             for (int i = 0; i < xml.DocumentElement.ChildNodes.Count; i++)  
    17.             {  
    18.                 XmlNode Xnode = xml.DocumentElement.ChildNodes[i];  
    19.                 TreeNode node = new TreeNode();  
    20.                 node.Text = Xnode.Attributes["name"].Value;  
    21.                 node.Tag = Xnode;  
    22.                 bindChildNode(node, Xnode);//绑定子节点  
    23.                 TvXml.Nodes.Add(node);  
    24.                 TvXml.HideSelection = false;  
    25.             }  
    26.         }  
    27.           
    28.         /// <summary>  
    29.         /// 递归绑定子节点  
    30.         /// </summary>  
    31.         /// <param name="node"></param>  
    32.         /// <param name="xml"></param>  
    33.         private void bindChildNode(TreeNode node, XmlNode xml)  
    34.         {  
    35.             for (int i = 0; i < xml.ChildNodes.Count; i++)  
    36.             {  
    37.                 TreeNode Childnode = new TreeNode();  
    38.                 XmlNode ChildXml = xml.ChildNodes[i];  
    39.                 Childnode.Text = ChildXml.Value;  
    40.                 Childnode.Name = "1";  
    41.                 Childnode.Tag = xml.ChildNodes[i];  
    42.                 if (ChildXml.HasChildNodes)  
    43.                 {  
    44.                     if (ChildXml.ChildNodes[0].NodeType == XmlNodeType.Text)  
    45.                         Childnode.Text = ChildXml.ChildNodes[0].InnerText;  
    46.                     else  
    47.                         bindChildNode(Childnode, ChildXml);  
    48.                 }  
    49.                 node.Nodes.Add(Childnode);  
    50.             }  
    51.              
    52.         }  
    53.   
    54.   
    55.   
    56.   
    57. public class ManageXML  
    58.     {  
    59.         /// <summary>  
    60.         /// 返回用户操作的SQL语句  
    61.         /// </summary>  
    62.         /// <param name="sqlNodeName">XML的操作节点</param>  
    63.         /// <returns>操作的sql语句</returns>  
    64.         public static string GetXMLPath(string strXMlFileName)  
    65.         {  
    66.             string m_strFullPath = "";  
    67.             Assembly Asm = Assembly.GetExecutingAssembly();  
    68.             //获取文件的路径                    
    69.             //m_strFullPath = Asm.Location.Substring(0, (Asm.Location.LastIndexOf("\") + 1)) + "XMLSql.xml";  
    70.             m_strFullPath = AppDomain.CurrentDomain.BaseDirectory + "XMLLibrary\" + strXMlFileName;  
    71.             return m_strFullPath;  
    72.         }  
    73.         /// <summary>  
    74.         /// 获取XML数据库中的数据的方法  
    75.         /// </summary>  
    76.         /// <param name="strFilePath">传入文件路径</param>  
    77.         /// <returns>返回一个数据集</returns>  
    78.         public static DataSet GetAllDataFromXML(string strFilePath)  
    79.         {  
    80.             DataSet ds = new DataSet();  
    81.             FileInfo fileInfo = new FileInfo(strFilePath);  
    82.             if (fileInfo.Exists)  
    83.             {  
    84.                 try  
    85.                 {  
    86.                     ds.ReadXml(strFilePath);  
    87.                 }  
    88.                 catch { }  
    89.             }  
    90.             else  
    91.             {  
    92.                 ds = null;  
    93.             }  
    94.             if (ds != null)  
    95.             {  
    96.                 if (ds.Tables[0].Rows.Count < 1)  
    97.                     ds = null;  
    98.             }  
    99.             return ds;  
    100.         }  
    101.   
    102.   
    103.         /// <summary>  
    104.         /// 获取指定目录下所有子节点的值  
    105.         /// </summary>  
    106.         /// <param name="strFileName">文件路径</param>  
    107.         /// <param name="nodeDir">节点目录</param>  
    108.         /// <returns></returns>  
    109.         public static  Hashtable GetNodeList(string strFileName, string nodeDir)  
    110.         {  
    111.             Hashtable strNodeList = new Hashtable();  
    112.             try  
    113.             {  
    114.                 XmlDocument xmlDoc = new XmlDocument();  
    115.                 xmlDoc.Load(strFileName);  
    116.   
    117.   
    118.                 XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点   
    119.   
    120.   
    121.                 foreach (XmlNode xn in nodeList)     //遍历所有子节点   
    122.                 {  
    123.                     XmlElement xe = (XmlElement)xn;  //将子节点类型转换为XmlElement类型   
    124.                     strNodeList.Add(xe.GetAttribute("id").ToString(), xe.InnerText.Trim());  
    125.                 }  
    126.   
    127.   
    128.             }  
    129.             catch (Exception)  
    130.             {  
    131.   
    132.   
    133.                 throw;  
    134.             }  
    135.             return strNodeList;  
    136.         }  
    137.   
    138.   
    139.         /// <summary>  
    140.         /// 获取指定节点的值  
    141.         /// </summary>  
    142.         /// <param name="strFileName">文件路径</param>  
    143.         /// <param name="nodeName">节点名称</param>  
    144.         /// <param name="value">设置后的值</param>  
    145.         /// <param name="nodeDir">指定节点所在的节点目录</param>  
    146.         /// <returns></returns>  
    147.         public static string GetNodeValue(string strFileName, string nodeName, string nodeDir)  
    148.         {  
    149.             string value = null;  
    150.             try  
    151.             {  
    152.                 XmlDocument xmlDoc = new XmlDocument();  
    153.                 xmlDoc.Load(strFileName);  
    154.   
    155.   
    156.                 XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点   
    157.   
    158.   
    159.                 foreach (XmlNode xn in nodeList)    //遍历所有子节点   
    160.                 {  
    161.                     XmlElement xe = (XmlElement)xn;  //将子节点类型转换为XmlElement类型   
    162.   
    163.   
    164.                     if (xe.Name == nodeName)  
    165.                     {  
    166.                         value = xe.InnerText.Trim();  
    167.   
    168.   
    169.                         break;  
    170.                     }  
    171.                 }  
    172.             }  
    173.             catch (Exception exp)  
    174.             {  
    175.                 throw exp;  
    176.             }  
    177.   
    178.   
    179.             return value;  
    180.         }  
    181.   
    182.   
    183.         /// <summary>  
    184.         /// 获取指定节点下面对应属性的值  
    185.         /// </summary>  
    186.         /// <param name="strFileName">文件路径</param>  
    187.         /// <param name="nodeName">节点名称</param>  
    188.         /// <param name="nodeDir">指定节点所在的节点目录</param>  
    189.         /// <param name="attribute">节点对应的属性名称</param>  
    190.         /// <returns></returns>  
    191.         public static string GetNodeValue(string strFileName, string nodeName, string nodeDir, string attribute)  
    192.         {  
    193.             string value = null;  
    194.             try  
    195.             {  
    196.                 XmlDocument xmlDoc = new XmlDocument();  
    197.                 xmlDoc.Load(strFileName);  
    198.   
    199.   
    200.                 XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点   
    201.   
    202.   
    203.                 foreach (XmlNode xn in nodeList)    //遍历所有子节点   
    204.                 {  
    205.                     XmlElement xe = (XmlElement)xn;  //将子节点类型转换为XmlElement类型   
    206.   
    207.   
    208.                     if (xe.Name == nodeName)  
    209.                     {  
    210.                         //value = xe.InnerText.Trim();  
    211.                         value = (xe).Attributes[attribute].Value;  
    212.                         break;  
    213.                     }  
    214.                 }  
    215.             }  
    216.             catch (Exception exp)  
    217.             {  
    218.                 throw exp;  
    219.             }  
    220.   
    221.   
    222.             return value;  
    223.         }  
    224.   
    225.   
    226.         /// <summary>  
    227.         /// 修改指定结点值  
    228.         /// </summary>  
    229.         /// <param name="strFileName">文件路径</param>  
    230.         /// <param name="nodeName">节点名称</param>  
    231.         /// <param name="value">设置后的值</param>  
    232.         /// <param name="nodeDir">指定节点所在的节点目录</param>  
    233.         /// <returns></returns>  
    234.         public static bool UpdateNoteValue(string strFileName, string nodeName, string value, string nodeDir)  
    235.         {  
    236.             bool isSucceed = false;  
    237.             try  
    238.             {  
    239.                 XmlDocument xmlDoc = new XmlDocument();  
    240.                 xmlDoc.Load(strFileName);  
    241.   
    242.   
    243.                 XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点   
    244.   
    245.   
    246.                 foreach (XmlNode xn in nodeList)    //遍历所有子节点   
    247.                 {  
    248.                     XmlElement xe = (XmlElement)xn;  //将子节点类型转换为XmlElement类型   
    249.   
    250.   
    251.                     if (xe.Name == nodeName)  
    252.                     {  
    253.                         xe.InnerText = value;  
    254.   
    255.   
    256.                         isSucceed = true;  
    257.                         break;  
    258.                     }  
    259.                 }  
    260.   
    261.   
    262.                 xmlDoc.Save(strFileName);  
    263.             }  
    264.             catch (Exception exp)  
    265.             {  
    266.                 throw exp;  
    267.             }  
    268.   
    269.   
    270.             return isSucceed;  
    271.         }  
    272.   
    273.   
    274.         /// <summary>  
    275.         /// 修改指定结点值  
    276.         /// </summary>  
    277.         /// <param name="strFileName">文件路径</param>  
    278.         /// <param name="nodeName">节点名称</param>  
    279.         /// <param name="value">设置后的值</param>  
    280.         /// <param name="nodeDir">指定节点所在的节点目录</param>  
    281.         /// <returns></returns>  
    282.         public static bool UpdateNoteValue(string strFileName, string nodeName, string value, string nodeDir, string attribute, string attributeValue)  
    283.         {  
    284.             bool isSucceed = false;  
    285.             try  
    286.             {  
    287.                 XmlDocument xmlDoc = new XmlDocument();  
    288.                 xmlDoc.Load(strFileName);  
    289.   
    290.   
    291.                 XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点   
    292.   
    293.   
    294.                 foreach (XmlNode xn in nodeList)    //遍历所有子节点   
    295.                 {  
    296.                     XmlElement xe = (XmlElement)xn;  //将子节点类型转换为XmlElement类型   
    297.   
    298.   
    299.                     if (xe.Name == nodeName)  
    300.                     {  
    301.                         xe.InnerText = value;  
    302.                         (xe).Attributes[attribute].Value = attributeValue;  
    303.                         isSucceed = true;  
    304.                         break;  
    305.                     }  
    306.                 }  
    307.   
    308.   
    309.                 xmlDoc.Save(strFileName);  
    310.             }  
    311.             catch (Exception exp)  
    312.             {  
    313.                 throw exp;  
    314.             }  
    315.   
    316.   
    317.             return isSucceed;  
    318.         }  
    319.   
    320.   
    321.   
    322.   
    323.         /// <summary>  
    324.         /// 修改指定结点值  
    325.         /// </summary>  
    326.         /// <param name="strFileName">文件路径</param>  
    327.         /// <param name="nodeName">节点名称</param>  
    328.         /// <param name="value">设置后的值</param>  
    329.         /// <param name="nodeDir">指定节点所在的节点目录</param>  
    330.         /// <returns></returns>  
    331.         public static bool UpdateNoteValue(string strFileName, Hashtable hstable, string nodeDir)  
    332.         {  
    333.             bool isSucceed = false;  
    334.             try  
    335.             {  
    336.                 XmlDocument xmlDoc = new XmlDocument();  
    337.                 xmlDoc.Load(strFileName);  
    338.   
    339.   
    340.                 XmlNodeList nodeList = xmlDoc.SelectSingleNode(nodeDir).ChildNodes;//获取bookstore节点的所有子节点   
    341.                 foreach (DictionaryEntry item in hstable)  
    342.                 {  
    343.                     foreach (XmlNode xn in nodeList)    //遍历所有子节点   
    344.                     {  
    345.                         XmlElement xe = (XmlElement)xn;  //将子节点类型转换为XmlElement类型   
    346.   
    347.   
    348.                         if (xe.Name == item.Key.ToString())  
    349.                         {  
    350.                             xe.InnerText = item.Value.ToString();  
    351.   
    352.   
    353.                             isSucceed = true;  
    354.                             break;  
    355.                         }  
    356.                     }  
    357.                 }  
    358.   
    359.   
    360.                 xmlDoc.Save(strFileName);  
    361.             }  
    362.             catch (Exception exp)  
    363.             {  
    364.                 throw exp;  
    365.             }  
    366.   
    367.   
    368.             return isSucceed;  
    369.         }  
    370.   
    371. }       
    1.    /// <summary>  
    2.         /// 移除选定节点集的所有属性  
    3.         /// </summary>  
    4.         /// <param name="xmlPathNode"></param>  
    5.         public void RemoveAllAttribute(string xmlPathNode)  
    6.         {  
    7.             XmlNodeList xnl = objXmlDoc.SelectNodes(xmlPathNode);  
    8.             foreach (XmlNode xn in xnl)  
    9.             {  
    10.                 xn.Attributes.RemoveAll();  
    11.             }  
    12.         }  
    13.         public void DeleteNode(string Node)  
    14.         {  
    15.             //刪除一个节点。  
    16.             try  
    17.             {  
    18.                 string mainNode = Node.Substring(0, Node.LastIndexOf("/"));  
    19.                 objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));  
    20.             }  
    21.             catch  
    22.             {  
    23.                 //throw;     
    24.                 return;  
    25.             }  
    26.         }  
    27.         public void InsertNodeWithChild(string mainNode, string ChildNode, string Element, string Content)  
    28.         {  
    29.             //插入一节点和此节点的一子节点。  
    30.             XmlNode objRootNode = objXmlDoc.SelectSingleNode(mainNode);  
    31.             XmlElement objChildNode = objXmlDoc.CreateElement(ChildNode);  
    32.             objRootNode.AppendChild(objChildNode);//插入节点  
    33.             XmlElement objElement = objXmlDoc.CreateElement(Element);  
    34.             objElement.InnerText = Content;  
    35.             objChildNode.AppendChild(objElement);//插入子节点  
    36.         }  
    37.         /// <summary>  
    38.         /// 插入一个节点,带一个Attribute和innerText  
    39.         /// </summary>  
    40.         /// <param name="mainNode"></param>  
    41.         /// <param name="Element">节点名称</param>  
    42.         /// <param name="Attrib">Attribute名称</param>  
    43.         /// <param name="AttribContent">Attribute值</param>  
    44.         /// <param name="Content">innerText值</param>  
    45.         public void InsertNode(string mainNode, string Element, string Attrib, string AttribContent, string Content)  
    46.         {  
    47.             XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);  
    48.             XmlElement objElement = objXmlDoc.CreateElement(Element);  
    49.             objElement.SetAttribute(Attrib, AttribContent);  
    50.             objElement.InnerText = Content;  
    51.             objNode.AppendChild(objElement);  
    52.         }  
    53.         /// <summary>  
    54.         /// 插入一个节点,带一个Attribute  
    55.         /// </summary>  
    56.         /// <param name="mainNode"></param>  
    57.         /// <param name="Element">节点名称</param>  
    58.         /// <param name="Attrib">Attribute名称</param>  
    59.         /// <param name="AttribContent">Attribute值</param>     
    60.         public void InsertNode(string mainNode, string Element, string Attrib, string AttribContent)  
    61.         {  
    62.             XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);  
    63.             XmlElement objElement = objXmlDoc.CreateElement(Element);  
    64.             objElement.SetAttribute(Attrib, AttribContent);  
    65.             objNode.AppendChild(objElement);  
    66.         }  
    67.         /// <summary>  
    68.         /// 插入一个节点  
    69.         /// </summary>  
    70.         /// <param name="mainNode"></param>  
    71.         /// <param name="Element">节点名称</param>         
    72.         public void InsertNode(string mainNode, string Element)  
    73.         {  
    74.             XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);  
    75.             XmlElement objElement = objXmlDoc.CreateElement(Element);  
    76.             objNode.AppendChild(objElement);  
    77.         }  
    78.         //<summary>  
    79.         //插入一个节点,带多个属性和一个inner text  
    80.         //</summary>  
    81.         public void InsertNode(string mainNode, string elementName, string[] arrAttributeName, string[] arrAttributeContent, string elementContent)  
    82.         {  
    83.             try  
    84.             {  
    85.                 XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);  
    86.                 XmlElement objElement = objXmlDoc.CreateElement(elementName);  
    87.                 for (int i = 0; i <= arrAttributeName.GetUpperBound(0); i++)  
    88.                 {  
    89.                     objElement.SetAttribute(arrAttributeName[i], arrAttributeContent[i]);  
    90.                 }  
    91.                 objElement.InnerText = elementContent;  
    92.                 objNode.AppendChild(objElement);  
    93.             }  
    94.             catch  
    95.             {  
    96.                 throw;  
    97.                 //string t = mainNode;  
    98.             }  
    99.         }  
    100.         ///<summary>  
    101.         ///插入一个节点,带多个属性  
    102.         ///</summary>  
    103.         public void InsertNode(string mainNode, string elementName, string[] arrAttributeName, string[] arrAttributeContent)  
    104.         {  
    105.             try  
    106.             {  
    107.                 XmlNode objNode = objXmlDoc.SelectSingleNode(mainNode);  
    108.                 XmlElement objElement = objXmlDoc.CreateElement(elementName);  
    109.                 for (int i = 0; i <= arrAttributeName.GetUpperBound(0); i++)  
    110.                 {  
    111.                     objElement.SetAttribute(arrAttributeName[i], arrAttributeContent[i]);  
    112.                 }  
    113.                 //objElement.InnerText = elementContent;  
    114.                 objNode.AppendChild(objElement);  
    115.             }  
    116.             catch  
    117.             {  
    118.                 throw;  
    119.                 //string t = mainNode;  
    120.             }  
    121.         }  
    122.         /// <summary>  
    123.         /// 插入子节点(带多个属性)  
    124.         /// </summary>  
    125.         /// <param name="parentNode">要插入的父节点</param>  
    126.         /// <param name="elementName">插入的节点名称</param>  
    127.         /// <param name="arrAttributeName">属性名称[数组]</param>  
    128.         /// <param name="arrAttributeContent">属性内容[数组]</param>  
    129.         /// <param name="elementContent">节点内容</param>  
    130.         public void AddChildNode(string parentNodePath, string elementName, string[] arrAttributeName, string[] arrAttributeContent, string elementContent)  
    131.         {  
    132.             try  
    133.             {  
    134.                 XmlNode parentNode = objXmlDoc.SelectSingleNode(parentNodePath);  
    135.                 XmlElement objChildElement = objXmlDoc.CreateElement(elementName);  
    136.                 for (int i = 0; i <= arrAttributeName.GetUpperBound(0); i++)  
    137.                 {  
    138.                     objChildElement.SetAttribute(arrAttributeName[i], arrAttributeContent[i]);  
    139.                 }  
    140.                 objChildElement.InnerText = elementContent;  
    141.                 parentNode.AppendChild(objChildElement);  
    142.             }  
    143.             catch  
    144.             {  
    145.                 return;  
    146.             }  
    147.         }  
    148.         /// <summary>  
    149.         /// 插入子节点(将内容以CData形式写入)  
    150.         /// </summary>  
    151.         /// <param name="parentNode">要插入的父节点</param>  
    152.         /// <param name="elementName">插入的节点名称</param>  
    153.         /// <param name="elementContent">节点内容</param>  
    154.         public void AddChildNodeCData(string parentNodePath, string elementName, string elementContent)  
    155.         {  
    156.             try  
    157.             {  
    158.                 XmlNode parentNode = objXmlDoc.SelectSingleNode(parentNodePath);  
    159.                 XmlElement objChildElement = objXmlDoc.CreateElement(elementName);  
    160.                 //写入cData数据  
    161.                 XmlCDataSection xcds = objXmlDoc.CreateCDataSection(elementContent);  
    162.                 objChildElement.AppendChild(xcds);  
    163.                 parentNode.AppendChild(objChildElement);  
    164.             }  
    165.             catch  
    166.             {  
    167.                 return;  
    168.             }  
    169.         }  
    170.   
    171.   
    172.         /// <summary>  
    173.         /// 插入子节点(仅内容,不带属性)  
    174.         /// </summary>  
    175.         /// <param name="parentNode">要插入的父节点</param>  
    176.         /// <param name="elementName">插入的节点名称</param>  
    177.         /// <param name="elementContent">节点内容</param>  
    178.         public void AddChildNode(string parentNodePath, string elementName, string elementContent)  
    179.         {  
    180.             try  
    181.             {  
    182.                 XmlNode parentNode = objXmlDoc.SelectSingleNode(parentNodePath);  
    183.                 XmlElement objChildElement = objXmlDoc.CreateElement(elementName);  
    184.                 objChildElement.InnerText = elementContent;  
    185.                 parentNode.AppendChild(objChildElement);  
    186.             }  
    187.             catch  
    188.             {  
    189.                 return;  
    190.             }  
    191.         }  
    192.         /// <summary>  
    193.         /// 根据xpath值查找节点  
    194.         /// </summary>  
    195.         /// <param name="NodePath">要查找节点的xpath值</param>  
    196.         /// <returns>找到返回true,否则返回true</returns>  
    197.         public bool FindNode(string NodePath)  
    198.         {  
    199.             try  
    200.             {  
    201.                 if (objXmlDoc.SelectSingleNode(NodePath) != null)  
    202.                 {  
    203.                     return true;  
    204.                 }  
    205.                 else  
    206.                 {  
    207.                     return false;  
    208.                 }  
    209.             }  
    210.             catch  
    211.             {  
    212.                 return false;  
    213.             }  
    214.         }  
  • 相关阅读:
    02、Linux下sshd以及openssl的知识点
    01_1、光盘上CentOS 安装程序启动过程
    01_2、GRUB(Boot Loader)
    1.在CentOS 6.4安装python3
    02.python基础知识_02
    01.python基础知识_01
    python_opencv应用系列1:图片读写
    Python for else 循环控制
    python中print后面加逗号
    Python中def的用法
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/wyhrt.html
Copyright © 2020-2023  润新知