读取XML空模版文件,向模版中加入值,返回字符串

/// <summary>
        /// 读取XML字符串,获得某个节点中的值
        /// </summary>
        /// <param name="strName">节点名称</param>
        /// <returns>节点值</returns>
        public static List<string> GetListXml(string[] strName, string reciveStr)
        {
            List<string> strValue = new List<string>();
            XmlTextReader reader = new XmlTextReader(reciveStr, XmlNodeType.Document, null);
            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    for (int i = 0; i < strName.Length; i++)
                    {
                        if (reader.Name == strName[i].ToString())
                        {
                            reader.Read();
                            if (XmlNodeType.Text == reader.NodeType)
                            {
                                strValue.Add(reader.Value);
                            }
                        }
                    }
                }
            }
            return strValue;
        }
        /// <summary>
        /// 读取XML文件模版,将节点值增加到XML文件中,返回XML字符串
        /// </summary>
        /// <param name="Xml_TXValue">节点下的值</param>
        /// <param name="strPath">XML文件模版路径</param>
        /// <returns>XML字符串</returns>
        public static string GetStrXML(string[] Xml_TXValue, string strPath)
        {
            PriCount = 0;
            XmlDocument xd = new XmlDocument();//定义一个xmldocument对象
            string xmlpath = GetXmlFullPath(strPath);//加载xml文件           
            xd.Load(@xmlpath);
            XmlElement tree = xd.DocumentElement;
            SetNodes(tree.ChildNodes, Xml_TXValue);
            return xd.InnerXml;
        }
        private static void SetNodes(XmlNodeList node,string [] XmlValue)
        {
            for (int i = 0; i < node.Count; i++)//对根子节点的所有子节点进行循环           
            {
                if (node[i].HasChildNodes)//判断是否还有子节点              
                {
                    SetNodes(node[i].ChildNodes, XmlValue);
                }
                else
                    node[i].InnerText = XmlValue[PriCount].ToString();
                PriCount++;
            }
        }
        private static string GetXmlFullPath(string strPath)
        {
            //如果路径中含有:符号,则认定为传入的是完整路径
            if (strPath.IndexOf(":") > 0)
            {
                return strPath;
            }
            else
            {
                //返回完整路径
                return System.Web.HttpContext.Current.Server.MapPath(strPath);
            }
        }
    }

posted @ 2012-07-20 17:20  途_途  阅读(366)  评论(0编辑  收藏  举报