分享一个操作xml的代码

前端之家收集整理的这篇文章主要介绍了分享一个操作xml的代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如有不明白的地方欢迎加QQ群14670545探讨

看了一个CMS系统,当然大多都会有这样的功能。加入xml格式如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xs:schema xmlns:xs="iNethinkCMS">
  3. <sys_configuration>
  4. <WebName><![CDATA[iNethinkCMS]]></WebName>
  5. <InstallDir><![CDATA[/]]></InstallDir>
  6. <UrlMode>1</UrlMode>
  7. <TemplateCache>false</TemplateCache>
  8. <WebPageCache>false</WebPageCache>
  9. <CacheKey><![CDATA[CacheKey]]></CacheKey>
  10. <CacheTime>1200</CacheTime>
  11. <TemplateDir><![CDATA[/template/BasicDemo/]]></TemplateDir>
  12. <RewriteChannelPrefix><![CDATA[channel]]></RewriteChannelPrefix>
  13. <RewriteSpecialPrefix><![CDATA[special]]></RewriteSpecialPrefix>
  14. <RewriteContentPrefix><![CDATA[content]]></RewriteContentPrefix>
  15. <RewriteGuestbookPrefix><![CDATA[guestbook]]></RewriteGuestbookPrefix>
  16. <RemoteImgDown>true</RemoteImgDown>
  17. <UpFileType><![CDATA[zip,rar,txt,doc,docx,xls,xlsx,jpg,jpeg,gif,png,bmp,swf,wmv,avi,wma,mp3,mid]]></UpFileType>
  18. <UpFileMaxSize>1024</UpFileMaxSize>
  19. <PageListNum>10</PageListNum>
  20. <ImageSeconds>5</ImageSeconds>
  21. </sys_configuration>
  22. </xs:schema>


model就不写了,类库:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Xml;
  5.  
  6. namespace iNethinkCMS.Helper
  7. {
  8. public class XMLHelper
  9. {
  10. public XMLHelper()
  11. {
  12.  
  13. }
  14.  
  15. #region XML文档节点查询和读取
  16. /// <summary>
  17. /// 选择匹配XPath表达式的第一个节点XmlNode.
  18. /// </summary>
  19. /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param>
  20. /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名")</param>
  21. /// <returns>返回XmlNode</returns>
  22. public static XmlNode GetXmlNodeByXpath(string xmlFileName,string xpath)
  23. {
  24. XmlDocument xmlDoc = new XmlDocument();
  25. try
  26. {
  27. xmlDoc.Load(xmlFileName); //加载XML文档
  28. XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);
  29. return xmlNode;
  30. }
  31. catch (Exception ex)
  32. {
  33. return null;
  34. throw ex; //这里可以定义你自己的异常处理
  35. }
  36. }
  37.  
  38. /// <summary>
  39. /// 选择匹配XPath表达式的节点列表XmlNodeList.
  40. /// </summary>
  41. /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param>
  42. /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名")</param>
  43. /// <returns>返回XmlNodeList</returns>
  44. public static XmlNodeList GetXmlNodeListByXpath(string xmlFileName,string xpath)
  45. {
  46. XmlDocument xmlDoc = new XmlDocument();
  47.  
  48. try
  49. {
  50. xmlDoc.Load(xmlFileName); //加载XML文档
  51. XmlNodeList xmlNodeList = xmlDoc.SelectNodes(xpath);
  52. return xmlNodeList;
  53. }
  54. catch (Exception ex)
  55. {
  56. return null;
  57. throw ex; //这里可以定义你自己的异常处理
  58. }
  59. }
  60.  
  61. /// <summary>
  62. /// 选择匹配XPath表达式的第一个节点的匹配xmlAttributeName的属性XmlAttribute.
  63. /// </summary>
  64. /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param>
  65. /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名</param>
  66. /// <param name="xmlAttributeName">要匹配xmlAttributeName的属性名称</param>
  67. /// <returns>返回xmlAttributeName</returns>
  68. public static XmlAttribute GetXmlAttribute(string xmlFileName,string xpath,string xmlAttributeName)
  69. {
  70. string content = string.Empty;
  71. XmlDocument xmlDoc = new XmlDocument();
  72. XmlAttribute xmlAttribute = null;
  73. try
  74. {
  75. xmlDoc.Load(xmlFileName); //加载XML文档
  76. XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);
  77. if (xmlNode != null)
  78. {
  79. if (xmlNode.Attributes.Count > 0)
  80. {
  81. xmlAttribute = xmlNode.Attributes[xmlAttributeName];
  82. }
  83. }
  84. }
  85. catch (Exception ex)
  86. {
  87. throw ex; //这里可以定义你自己的异常处理
  88. }
  89. return xmlAttribute;
  90. }
  91. #endregion
  92.  
  93. #region XML文档创建和节点或属性添加修改
  94. /// <summary>
  95. /// 创建一个XML文档
  96. /// </summary>
  97. /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param>
  98. /// <param name="rootNodeName">XML文档根节点名称(须指定一个根节点名称)</param>
  99. /// <param name="version">XML文档版本号(必须为:"1.0")</param>
  100. /// <param name="encoding">XML文档编码方式</param>
  101. /// <param name="standalone">该值必须是"yes"或"no",如果为null,Save方法不在XML声明上写出独立属性</param>
  102. /// <returns>成功返回true,失败返回false</returns>
  103. public static bool CreateXmlDocument(string xmlFileName,string rootNodeName,string version,string encoding,string standalone)
  104. {
  105. bool isSuccess = false;
  106. try
  107. {
  108. XmlDocument xmlDoc = new XmlDocument();
  109. XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration(version,encoding,standalone);
  110. XmlNode root = xmlDoc.CreateElement(rootNodeName);
  111. xmlDoc.AppendChild(xmlDeclaration);
  112. xmlDoc.AppendChild(root);
  113. xmlDoc.Save(xmlFileName);
  114. isSuccess = true;
  115. }
  116. catch (Exception ex)
  117. {
  118. throw ex; //这里可以定义你自己的异常处理
  119. }
  120. return isSuccess;
  121. }
  122.  
  123. /// <summary>
  124. /// 依据匹配XPath表达式的第一个节点来创建它的子节点(如果此节点已存在则追加一个新的同名节点
  125. /// </summary>
  126. /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param>
  127. /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名</param>
  128. /// <param name="xmlNodeName">要匹配xmlNodeName的节点名称</param>
  129. /// <param name="innerText">节点文本值</param>
  130. /// <param name="xmlAttributeName">要匹配xmlAttributeName的属性名称</param>
  131. /// <param name="value">属性值</param>
  132. /// <returns>成功返回true,失败返回false</returns>
  133. public static bool CreateXmlNodeByXPath(string xmlFileName,string xmlNodeName,string innerText,string xmlAttributeName,string value)
  134. {
  135. bool isSuccess = false;
  136. XmlDocument xmlDoc = new XmlDocument();
  137. try
  138. {
  139. xmlDoc.Load(xmlFileName); //加载XML文档
  140. XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);
  141. if (xmlNode != null)
  142. {
  143. //存不存在此节点都创建
  144. XmlElement subElement = xmlDoc.CreateElement(xmlNodeName);
  145. subElement.InnerXml = innerText;
  146.  
  147. //如果属性和值参数都不为空则在此新节点上新增属性
  148. if (!string.IsNullOrEmpty(xmlAttributeName) && !string.IsNullOrEmpty(value))
  149. {
  150. XmlAttribute xmlAttribute = xmlDoc.CreateAttribute(xmlAttributeName);
  151. xmlAttribute.Value = value;
  152. subElement.Attributes.Append(xmlAttribute);
  153. }
  154.  
  155. xmlNode.AppendChild(subElement);
  156. }
  157. xmlDoc.Save(xmlFileName); //保存到XML文档
  158. isSuccess = true;
  159. }
  160. catch (Exception ex)
  161. {
  162. throw ex; //这里可以定义你自己的异常处理
  163. }
  164. return isSuccess;
  165. }
  166.  
  167. /// <summary>
  168. /// 依据匹配XPath表达式的第一个节点来创建或更新它的子节点(如果节点存在则更新,不存在则创建)
  169. /// </summary>
  170. /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param>
  171. /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名</param>
  172. /// <param name="xmlNodeName">要匹配xmlNodeName的节点名称</param>
  173. /// <param name="innerText">节点文本值</param>
  174. /// <returns>成功返回true,失败返回false</returns>
  175. public static bool CreateOrUpdateXmlNodeByXPath(string xmlFileName,string innerText)
  176. {
  177. bool isSuccess = false;
  178. bool isExistsNode = false;//标识节点是否存在
  179. XmlDocument xmlDoc = new XmlDocument();
  180. try
  181. {
  182. xmlDoc.Load(xmlFileName); //加载XML文档
  183. XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);
  184. if (xmlNode != null)
  185. {
  186. //遍历xpath节点下的所有子节点
  187. foreach (XmlNode node in xmlNode.ChildNodes)
  188. {
  189. if (node.Name.ToLower() == xmlNodeName.ToLower())
  190. {
  191. //存在此节点则更新
  192. node.InnerXml = innerText;
  193. isExistsNode = true;
  194. break;
  195. }
  196. }
  197. if (!isExistsNode)
  198. {
  199. //不存在此节点则创建
  200. XmlElement subElement = xmlDoc.CreateElement(xmlNodeName);
  201. subElement.InnerXml = innerText;
  202. xmlNode.AppendChild(subElement);
  203. }
  204. }
  205. xmlDoc.Save(xmlFileName); //保存到XML文档
  206. isSuccess = true;
  207. }
  208. catch (Exception ex)
  209. {
  210. throw ex; //这里可以定义你自己的异常处理
  211. }
  212. return isSuccess;
  213. }
  214.  
  215. /// <summary>
  216. /// 依据匹配XPath表达式的第一个节点来创建或更新它的属性(如果属性存在则更新,不存在则创建)
  217. /// </summary>
  218. /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param>
  219. /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名</param>
  220. /// <param name="xmlAttributeName">要匹配xmlAttributeName的属性名称</param>
  221. /// <param name="value">属性值</param>
  222. /// <returns>成功返回true,失败返回false</returns>
  223. public static bool CreateOrUpdateXmlAttributeByXPath(string xmlFileName,string value)
  224. {
  225. bool isSuccess = false;
  226. bool isExistsAttribute = false;//标识属性是否存在
  227. XmlDocument xmlDoc = new XmlDocument();
  228. try
  229. {
  230. xmlDoc.Load(xmlFileName); //加载XML文档
  231. XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);
  232. if (xmlNode != null)
  233. {
  234. //遍历xpath节点中的所有属性
  235. foreach (XmlAttribute attribute in xmlNode.Attributes)
  236. {
  237. if (attribute.Name.ToLower() == xmlAttributeName.ToLower())
  238. {
  239. //节点中存在此属性则更新
  240. attribute.Value = value;
  241. isExistsAttribute = true;
  242. break;
  243. }
  244. }
  245. if (!isExistsAttribute)
  246. {
  247. //节点中不存在此属性则创建
  248. XmlAttribute xmlAttribute = xmlDoc.CreateAttribute(xmlAttributeName);
  249. xmlAttribute.Value = value;
  250. xmlNode.Attributes.Append(xmlAttribute);
  251. }
  252. }
  253. xmlDoc.Save(xmlFileName); //保存到XML文档
  254. isSuccess = true;
  255. }
  256. catch (Exception ex)
  257. {
  258. throw ex; //这里可以定义你自己的异常处理
  259. }
  260. return isSuccess;
  261. }
  262. #endregion
  263.  
  264. #region XML文档节点或属性删除
  265. /// <summary>
  266. /// 删除匹配XPath表达式的第一个节点(节点中的子元素同时会被删除)
  267. /// </summary>
  268. /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param>
  269. /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名</param>
  270. /// <returns>成功返回true,失败返回false</returns>
  271. public static bool DeleteXmlNodeByXPath(string xmlFileName,string xpath)
  272. {
  273. bool isSuccess = false;
  274. XmlDocument xmlDoc = new XmlDocument();
  275. try
  276. {
  277. xmlDoc.Load(xmlFileName); //加载XML文档
  278. XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);
  279. if (xmlNode != null)
  280. {
  281. //删除节点
  282. xmlNode.ParentNode.RemoveChild(xmlNode);
  283. }
  284. xmlDoc.Save(xmlFileName); //保存到XML文档
  285. isSuccess = true;
  286. }
  287. catch (Exception ex)
  288. {
  289. throw ex; //这里可以定义你自己的异常处理
  290. }
  291. return isSuccess;
  292. }
  293.  
  294. /// <summary>
  295. /// 删除匹配XPath表达式的第一个节点中的匹配参数xmlAttributeName的属性
  296. /// </summary>
  297. /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param>
  298. /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名</param>
  299. /// <param name="xmlAttributeName">要删除的xmlAttributeName的属性名称</param>
  300. /// <returns>成功返回true,失败返回false</returns>
  301. public static bool DeleteXmlAttributeByXPath(string xmlFileName,string xmlAttributeName)
  302. {
  303. bool isSuccess = false;
  304. bool isExistsAttribute = false;
  305. XmlDocument xmlDoc = new XmlDocument();
  306. try
  307. {
  308. xmlDoc.Load(xmlFileName); //加载XML文档
  309. XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);
  310. XmlAttribute xmlAttribute = null;
  311. if (xmlNode != null)
  312. {
  313. //遍历xpath节点中的所有属性
  314. foreach (XmlAttribute attribute in xmlNode.Attributes)
  315. {
  316. if (attribute.Name.ToLower() == xmlAttributeName.ToLower())
  317. {
  318. //节点中存在此属性
  319. xmlAttribute = attribute;
  320. isExistsAttribute = true;
  321. break;
  322. }
  323. }
  324. if (isExistsAttribute)
  325. {
  326. //删除节点中的属性
  327. xmlNode.Attributes.Remove(xmlAttribute);
  328. }
  329. }
  330. xmlDoc.Save(xmlFileName); //保存到XML文档
  331. isSuccess = true;
  332. }
  333. catch (Exception ex)
  334. {
  335. throw ex; //这里可以定义你自己的异常处理
  336. }
  337. return isSuccess;
  338. }
  339.  
  340. /// <summary>
  341. /// 删除匹配XPath表达式的第一个节点中的所有属性
  342. /// </summary>
  343. /// <param name="xmlFileName">XML文档完全文件名(包含物理路径)</param>
  344. /// <param name="xpath">要匹配的XPath表达式(例如:"//节点名//子节点名</param>
  345. /// <returns>成功返回true,失败返回false</returns>
  346. public static bool DeleteAllXmlAttributeByXPath(string xmlFileName,string xpath)
  347. {
  348. bool isSuccess = false;
  349. XmlDocument xmlDoc = new XmlDocument();
  350. try
  351. {
  352. xmlDoc.Load(xmlFileName); //加载XML文档
  353. XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);
  354. if (xmlNode != null)
  355. {
  356. //遍历xpath节点中的所有属性
  357. xmlNode.Attributes.RemoveAll();
  358. }
  359. xmlDoc.Save(xmlFileName); //保存到XML文档
  360. isSuccess = true;
  361. }
  362. catch (Exception ex)
  363. {
  364. throw ex; //这里可以定义你自己的异常处理
  365. }
  366. return isSuccess;
  367. }
  368. #endregion
  369.  
  370. }
  371. }

应用:
  1. /// <summary>
  2. /// 更新 --- 系统配置
  3. /// </summary>
  4. public bool Update_SysConfig(iNethinkCMS.Model.Model_Config model)
  5. {
  6. string strXmlFile = HttpContext.Current.Server.MapPath("~/config/sys.config");
  7.  
  8. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"//sys_configuration","WebName","<![CDATA[" + model.WebName + "]]>");
  9. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"InstallDir","<![CDATA[" + model.InstallDir + "]]>");
  10. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"UrlMode",model.UrlMode.ToString());
  11. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"TemplateCache",model.TemplateCache);
  12. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"WebPageCache",model.WebPageCache);
  13. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"TemplateDir","<![CDATA[" + model.TemplateDir + "]]>");
  14. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"CacheTime",model.CacheTime);
  15.  
  16. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"RewriteChannelPrefix","<![CDATA[" + model.RewriteChannelPrefix + "]]>");
  17. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"RewriteSpecialPrefix","<![CDATA[" + model.RewriteSpecialPrefix + "]]>");
  18. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"RewriteContentPrefix","<![CDATA[" + model.RewriteContentPrefix + "]]>");
  19. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"RewriteGuestbookPrefix","<![CDATA[" + model.RewriteGuestbookPrefix + "]]>");
  20.  
  21. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"RemoteImgDown",model.RemoteImgDown);
  22. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"UpFileType","<![CDATA[" + model.UpFileType + "]]>");
  23. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"UpFileMaxSize",model.UpFileMaxSize);
  24.  
  25. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"PageListNum",model.PageListNum);
  26. XMLHelper.CreateOrUpdateXmlNodeByXPath(strXmlFile,"ImageSeconds",model.ImageSeconds);
  27.  
  28. return true;
  29. }

  1. /// <summary>
  2. /// 得到一个对象实体 --- 系统配置
  3. /// </summary>
  4. public iNethinkCMS.Model.Model_Config GetModel_SysConfig()
  5. {
  6. string strXmlFile = HttpContext.Current.Server.MapPath("~/config/sys.config");
  7.  
  8. iNethinkCMS.Model.Model_Config model = new iNethinkCMS.Model.Model_Config();
  9. model.WebName = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//WebName").InnerText.Trim();
  10. model.InstallDir = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//InstallDir").InnerText.Trim();
  11. model.UrlMode = int.Parse(XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//UrlMode").InnerText.Trim());
  12. model.TemplateCache = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//TemplateCache").InnerText.Trim();
  13. model.WebPageCache = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//WebPageCache").InnerText.Trim();
  14. model.TemplateDir = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//TemplateDir").InnerText.Trim();
  15. model.CacheKey = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//CacheKey").InnerText.Trim();
  16. model.CacheTime = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//CacheTime").InnerText.Trim();
  17.  
  18. model.RewriteChannelPrefix = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//RewriteChannelPrefix").InnerText.Trim();
  19. model.RewriteSpecialPrefix = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//RewriteSpecialPrefix").InnerText.Trim();
  20. model.RewriteContentPrefix = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//RewriteContentPrefix").InnerText.Trim();
  21. model.RewriteGuestbookPrefix = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//RewriteGuestbookPrefix").InnerText.Trim();
  22.  
  23. model.RemoteImgDown = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//RemoteImgDown").InnerText.Trim();
  24. model.UpFileType = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//UpFileType").InnerText.Trim();
  25. model.UpFileMaxSize = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//UpFileMaxSize").InnerText.Trim();
  26.  
  27. model.PageListNum = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//PageListNum").InnerText.Trim();
  28. model.ImageSeconds = XMLHelper.GetXmlNodeByXpath(strXmlFile,"//sys_configuration//ImageSeconds").InnerText.Trim();
  29.  
  30. return model;
  31. }

不过真心觉得这样子很累,频发的操作,没有dtcms里面的反序列化思路好:

它的xml如下:

  1. <?xml version="1.0"?>
  2. <siteconfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  3. <webname>DTcms内容管理系统</webname>
  4. <webcompany>动力启航软件工作室</webcompany>
  5. <weburl>http://demo.dtcms.net</weburl>
  6. <webtel>13800138000</webtel>
  7. <webfax>-</webfax>
  8. <webmail>info@it134.cn</webmail>
  9. <webcrod>粤ICP备11064298号</webcrod>
  10. <webtitle>DTcms网站管理系统 - 动力启航_开源cms_NET开源_cms建站</webtitle>
  11. <webkeyword>动力启航,DTCMS系统,ASP.NET开源,开源CMS,网站管理系统,互联网开发</webkeyword>
  12. <webdescription>以ASP.NET(C#)+jQuery技术为中心,面向软件开发者、程序爱好者、网页设计师,服务于个人、企业的网站,同时也是一个专门结合AJAX技术开发友好界面、倍受欢迎用户体验的BS模式软件系统,打造自己的品牌。</webdescription>
  13. <webcopyright>版权所有 动力启航 © Copyright 2009 - 2012. dtcms.net. All Rights Reserved.</webcopyright>
  14. <webpath>/</webpath>
  15. <webmanagepath>admin</webmanagepath>
  16. <webstatus>1</webstatus>
  17. <webclosereason>网站正在维护中,请稍候访问……</webclosereason>
  18. <webcountcode><script src="http://s24.cnzz.com/stat.PHP?id=1996164&web_id=1996164&show=pic" language="JavaScript"></script></webcountcode>
  19. <staticstatus>1</staticstatus>
  20. <staticextension>html</staticextension>
  21. <memberstatus>1</memberstatus>
  22. <commentstatus>0</commentstatus>
  23. <logstatus>1</logstatus>
  24. <emailstmp>smtp.qq.com</emailstmp>
  25. <emailport>25</emailport>
  26. <emailfrom>info@it134.cn</emailfrom>
  27. <emailusername>info@it134.cn</emailusername>
  28. <emailpassword>EA4C94A47ED87546</emailpassword>
  29. <emailnickname>动力启航</emailnickname>
  30. <attachpath>upload</attachpath>
  31. <attachextension>gif,zip,txt</attachextension>
  32. <attachsave>2</attachsave>
  33. <attachfilesize>51200</attachfilesize>
  34. <attachimgsize>10240</attachimgsize>
  35. <attachimgmaxheight>800</attachimgmaxheight>
  36. <attachimgmaxwidth>800</attachimgmaxwidth>
  37. <thumbnailheight>300</thumbnailheight>
  38. <thumbnailwidth>300</thumbnailwidth>
  39. <watermarktype>2</watermarktype>
  40. <watermarkposition>9</watermarkposition>
  41. <watermarkimgquality>80</watermarkimgquality>
  42. <watermarkpic>watermark.png</watermarkpic>
  43. <watermarktransparency>5</watermarktransparency>
  44. <watermarktext>动力启航</watermarktext>
  45. <watermarkfont>Tahoma</watermarkfont>
  46. <watermarkfontsize>12</watermarkfontsize>
  47. <templateskin>green</templateskin>
  48. <sysdatabaseprefix>dt_</sysdatabaseprefix>
  49. <sysencryptstring>DTcms</sysencryptstring>
  50. </siteconfig>


部分代码

  1. /// <summary>
  2. /// 反序列化
  3. /// </summary>
  4. /// <param name="type">对象类型</param>
  5. /// <param name="filename">文件路径</param>
  6. /// <returns></returns>
  7. public static object Load(Type type,string filename)
  8. {
  9. FileStream fs = null;
  10. try
  11. {
  12. // open the stream...
  13. fs = new FileStream(filename,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
  14. XmlSerializer serializer = new XmlSerializer(type);
  15. return serializer.Deserialize(fs);
  16. }
  17. catch (Exception ex)
  18. {
  19. throw ex;
  20. }
  21. finally
  22. {
  23. if (fs != null)
  24. fs.Close();
  25. }
  26. }
  27.  
  28.  
  29. /// <summary>
  30. /// 序列化
  31. /// </summary>
  32. /// <param name="obj">对象</param>
  33. /// <param name="filename">文件路径</param>
  34. public static void Save(object obj,string filename)
  35. {
  36. FileStream fs = null;
  37. // serialize it...
  38. try
  39. {
  40. fs = new FileStream(filename,FileMode.Create,FileAccess.Write,FileShare.ReadWrite);
  41. XmlSerializer serializer = new XmlSerializer(obj.GetType());
  42. serializer.Serialize(fs,obj);
  43. }
  44. catch (Exception ex)
  45. {
  46. throw ex;
  47. }
  48. finally
  49. {
  50. if (fs != null)
  51. fs.Close();
  52. }
  53.  
  54. }

  1. /// <summary>
  2. /// 读取站点配置文件
  3. /// </summary>
  4. public Model.siteconfig loadConfig(string configFilePath)
  5. {
  6. return (Model.siteconfig)SerializationHelper.Load(typeof(Model.siteconfig),configFilePath);
  7. }
  8.  
  9. /// <summary>
  10. /// 写入站点配置文件
  11. /// </summary>
  12. public Model.siteconfig saveConifg(Model.siteconfig model,string configFilePath)
  13. {
  14. lock (lockHelper)
  15. {
  16. SerializationHelper.Save(model,configFilePath);
  17. }
  18. return model;
  19. }

猜你在找的XML相关文章