Xml操作类

xml文件编程中经常用到,它的结构化存储数据可与数据库结合使用,也用于显示视图 。

XmlHelper.cs

using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.Xml;
using  System.Xml.Xsl;
using  System.Xml.Serialization;
using  System.IO;
using  System.Net;
using  System.Data;

namespace  Beasyer.Lib
{
    
public static class XmlHelper
    

        
/// <summary>
        
/// 由路径获取xml对象
        
/// </summary>
        
/// <param name="contentUrl"></param>
        
/// <returns></returns>

        public static XmlDocument GetXMLContent(string contentUrl)
        
{
            XmlDocument returnValue;
            returnValue 
= new XmlDocument();
            WebRequest webRequest 
= WebRequest.Create(contentUrl);
            WebResponse webResponse 
= webRequest.GetResponse();
            XmlReader xmlReader 
= new XmlTextReader(webResponse.GetResponseStream());
            returnValue.Load(xmlReader);
            
return returnValue;
        }

        
/// <summary>
        
/// 由路径获取xsl对象
        
/// </summary>
        
/// <param name="contentURL"></param>
        
/// <returns></returns>

        public static XslCompiledTransform GetXSLContent(string contentURL)
        
{
            XslCompiledTransform returnValue;

            returnValue 
= new XslCompiledTransform();
            WebRequest webRequest 
= WebRequest.Create(contentURL);
            WebResponse webResponse 
= webRequest.GetResponse();
            XmlReader xslTransform 
= new XmlTextReader(webResponse.GetResponseStream());
            returnValue.Load(xslTransform, 
nullnull);
            
return returnValue;
        }


        
/// <summary>
        
/// 新建xmlattribute属性
        
/// </summary>
        
/// <param name="objXmlDoc"></param>
        
/// <param name="attributeName"></param>
        
/// <param name="attributeValue"></param>
        
/// <returns></returns>

        public static XmlAttribute CreateAttribute(XmlDocument objXmlDoc, string attributeName, string attributeValue)
        
{
            XmlAttribute attribute 
= objXmlDoc.CreateAttribute(attributeName);
            attribute.Value 
= attributeValue;
            
return attribute;
        }

        
/// <summary>
        
/// 新建xmlelement属性
        
/// </summary>
        
/// <param name="objXmlDoc"></param>
        
/// <param name="nodeName"></param>
        
/// <param name="nodeValue"></param>
        
/// <returns></returns>

        public static XmlElement CreateElement(XmlDocument objXmlDoc, string nodeName, string nodeValue)
        
{
            XmlElement element 
= objXmlDoc.CreateElement(nodeName);
            element.InnerText 
= nodeValue;
            
return element;
        }


        
/// <summary>
        
/// 查找数据。返回一个DataSet
        
/// </summary>
        
/// <param name="objXmlDoc"></param>
        
/// <param name="XmlPathNode"></param>
        
/// <returns>DataSet</returns>

        public static DataSet GetDataFromNode(XmlDocument objXmlDoc, string XmlPathNode)
        
{
            DataSet ds 
= new DataSet();
            StringReader read 
= new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
            ds.ReadXml(read);
            
return ds;
        }


        
/// <summary>
        
/// 更新节点內容
        
/// </summary>
        
/// <param name="objXmlDoc"></param>
        
/// <param name="XmlPathNode"></param>
        
/// <param name="Content"></param>

        public static void UpdateNode(ref XmlDocument objXmlDoc, string XmlPathNode, string Content)
        
{
            objXmlDoc.SelectSingleNode(XmlPathNode).InnerText 
= Content;
        }


        
/// <summary>
        
/// 刪除一个节点
        
/// </summary>
        
/// <param name="objXmlDoc"></param>
        
/// <param name="Node"></param>

        public static void DeleteNode(ref XmlDocument objXmlDoc, string Node)
        
{
            
string mainNode = Node.Substring(0, Node.LastIndexOf("/"));
            objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
        }


        
/// <summary>
        
/// 插入一节点和此节点的一子节点
        
/// </summary>
        
/// <param name="objXmlDoc"></param>
        
/// <param name="MainNode"></param>
        
/// <param name="ChildNode"></param>
        
/// <param name="Element"></param>
        
/// <param name="Content"></param>

        public static void InsertNode(ref XmlDocument objXmlDoc, 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>
        
/// 插入一个节点,带一属性
        
/// </summary>
        
/// <param name="objXmlDoc"></param>
        
/// <param name="MainNode"></param>
        
/// <param name="Element"></param>
        
/// <param name="Attrib"></param>
        
/// <param name="AttribContent"></param>
        
/// <param name="Content"></param>

        public static void InsertElement(ref XmlDocument objXmlDoc, 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>
        
/// 插入一个节点,不带属性
        
/// </summary>
        
/// <param name="objXmlDoc"></param>
        
/// <param name="MainNode"></param>
        
/// <param name="Element"></param>
        
/// <param name="Content"></param>

        public static void InsertElement(ref XmlDocument objXmlDoc, string MainNode, string Element, string Content)
        
{
            XmlNode objNode 
= objXmlDoc.SelectSingleNode(MainNode);
            XmlElement objElement 
= objXmlDoc.CreateElement(Element);
            objElement.InnerText 
= Content;
            objNode.AppendChild(objElement);
        }


        
/// <summary>
        
/// 获取节点的值
        
/// </summary>
        
/// <param name="node"></param>
        
/// <param name="nodeName"></param>
        
/// <param name="defaultValue"></param>
        
/// <returns></returns>

        public static string GetNodeValue(XmlNode node, string nodeName, string defaultValue)
        
{
            XmlElement element 
= node[nodeName];
            
if (element != null && element.InnerText.Length > 0)
            
{
                
return element.InnerText;
            }

            
return defaultValue;
        }

        
/// <summary>
        
/// 获取节点的值
        
/// </summary>
        
/// <param name="node"></param>
        
/// <param name="nodeName"></param>
        
/// <param name="defaultValue"></param>
        
/// <returns></returns>

        public static bool GetNodeValueBoolean(XmlNode node, string nodeName, bool defaultValue)
        
{
            XmlElement element 
= node[nodeName];
            
if (element != null && element.InnerText.Length > 0)
            
{
                
return Convert.ToBoolean(element.InnerText);
            }

            
return defaultValue;
        }

        
/// <summary>
        
/// 获取节点的值
        
/// </summary>
        
/// <param name="node"></param>
        
/// <param name="nodeName"></param>
        
/// <param name="defaultValue"></param>
        
/// <returns></returns>

        public static DateTime GetNodeValueDate(XmlNode node, string nodeName, DateTime defaultValue)
        
{
            XmlElement element 
= node[nodeName];
            
if (element != null && element.InnerText.Length > 0)
            
{
                
try
                
{
                    
return Convert.ToDateTime(element.InnerText);
                }

                
catch
                
{
                    
return defaultValue;
                }

            }

            
return defaultValue;
            
// node does not exist / data conversion error - legacy issue: use default value
        }

        
/// <summary>
        
/// 获取节点的值
        
/// </summary>
        
/// <param name="node"></param>
        
/// <param name="nodeName"></param>
        
/// <param name="defaultValue"></param>
        
/// <returns></returns>

        public static int GetNodeValueInt(XmlNode node, string nodeName, int defaultValue)
        
{
            XmlElement element 
= node[nodeName];
            
if (element != null && element.InnerText.Length > 0)
            
{
                
return Convert.ToInt32(element.InnerText);
            }

            
// node does not exist / data conversion error - legacy issue: use default value
            return defaultValue;
        }

        
/// <summary>
        
/// 获取节点的值
        
/// </summary>
        
/// <param name="node"></param>
        
/// <param name="nodeName"></param>
        
/// <param name="defaultValue"></param>
        
/// <returns></returns>

        public static float GetNodeValueSingle(XmlNode node, string nodeName, float defaultValue)
        
{
            XmlElement element 
= node[nodeName];
            
if (element != null && element.InnerText.Length > 0)
            
{
                
return Convert.ToSingle(element.InnerText);
            }

            
// node does not exist / data conversion error - legacy issue: use default value
            return defaultValue;
        }

        
/// <summary>
        
/// 连载对象
        
/// </summary>
        
/// <param name="obj"></param>
        
/// <returns></returns>

        public static string Serialize(object obj)
        
{
            XmlDocument xmlDoc 
= new XmlDocument();
            XmlSerializer serializer;
            StringWriter stringWriter;

            serializer 
= new XmlSerializer(obj.GetType());
            stringWriter 
= new StringWriter();
            serializer.Serialize(stringWriter, obj);

            xmlDoc.LoadXml(stringWriter.GetStringBuilder().ToString());
            XmlNode xmlDocElement 
= xmlDoc.DocumentElement;
            xmlDocElement.Attributes.Remove(xmlDocElement.Attributes[
"xmlns:xsd"]);
            xmlDocElement.Attributes.Remove(xmlDocElement.Attributes[
"xmlns:xsi"]);

            
return xmlDocElement.OuterXml;
        }

        
/// <summary>
        
/// xmlencode网页内容
        
/// </summary>
        
/// <param name="html"></param>
        
/// <returns></returns>

        public static string XMLEncode(string html)
        
{
            
return "<![CDATA[" + html + "]]>";
        }



        
public static void SaveConnectionStringToConfig(FileInfo configfile, string connectionstring)
        
{
            
if (configfile.Exists)
            
{
                
try
                
{
                    XmlDocument xmlDocument 
= new XmlDocument();
                    xmlDocument.Load(configfile.FullName);

                    
//修改连接字符串
                    foreach (XmlNode Node in xmlDocument["configuration"]["connectionStrings"])
                    
{
                        
if (Node.Name == "add")
                        
{
                            
if (Node.Attributes.GetNamedItem("name").Value == "Connection String")
                            
{
                                Node.Attributes.GetNamedItem(
"connectionString").Value = connectionstring;
                            }

                        }

                    }


                    xmlDocument.Save(configfile.FullName);
                }

                
catch
                
{ }
            }

        }

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值