usestudioxml.py 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. # -*-coding:utf-8-*-
  2. #支持中文必须加上上面一句话
  3. __author__ = 'cwh'
  4. #xml文件处理类
  5. import xml.dom.minidom
  6. #包含时间类
  7. import datetime
  8. #导入数据库处理文件
  9. from usestudiodatabase import ApiSitemapData
  10. class UsestudioXML:
  11. #数据
  12. apidb=ApiSitemapData()
  13. apiData=apidb.selectData();
  14. #当索引超过五万时,启用此函数。
  15. def apiSitemap(self):
  16. #在内存中创建一个空的文档
  17. doc = xml.dom.minidom.Document()
  18. #创建一个根节点sitemapindex对象
  19. root = doc.createElement('sitemapindex')
  20. doc.appendChild(root)
  21. #当索引文件超过五万时,以下文件需要循环生成。
  22. nodeUrl = doc.createElement('sitemap')
  23. #给叶子节点loc设置一个文本节点,用于显示站点地图的url
  24. nodeLoc = doc.createElement('loc')
  25. nodeLoc.appendChild(doc.createTextNode('http://api.1473.cn/seo/sitemap1.xml'))
  26. #添加时间节点
  27. nodeLastmod = doc.createElement("lastmod")
  28. #nodeLastmod.appendChild(doc.createTextNode(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
  29. nodeLastmod.appendChild(doc.createTextNode(datetime.datetime.now().strftime('%Y-%m-%d')))
  30. #将各叶子节点添加到父节点url中,
  31. #最后将url节点添加到根节点root中
  32. nodeUrl.appendChild(nodeLoc)
  33. nodeUrl.appendChild(nodeLastmod)
  34. root.appendChild(nodeUrl)
  35. #开始写xml文档,"w+",打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
  36. fp = open('c:\\usestudioxml\\sitemapindex.xml', 'w+')
  37. #写入XML头,类似<?xml version="1.0" encoding="utf-8"?>
  38. #indent='\t' 指第一个urlset的空格个数 addindent='\t'为后面的元素的空格间距。
  39. #doc.writexml(fp, indent='\t', addindent='\t', newl='\n', encoding="utf-8")
  40. doc.writexml(fp, addindent=' ', newl='\n', encoding="utf-8")
  41. def apiXML(self):
  42. #在内存中创建一个空的文档
  43. doc = xml.dom.minidom.Document()
  44. #创建一个根节点root对象
  45. root = doc.createElement('urlset')
  46. #设置根节点的属性
  47. #root.setAttribute('company', '有思俱乐部')
  48. #root.setAttribute('address', '科技软件园')
  49. #将根节点添加到文档对象中
  50. doc.appendChild(root)
  51. for i in self.apiData:
  52. nodeUrl = doc.createElement('url')
  53. #给叶子节点loc设置一个文本节点,用于显示站点地图的url
  54. nodeLoc = doc.createElement('loc')
  55. nodeLoc.appendChild(doc.createTextNode(i[0]))
  56. #添加时间节点
  57. nodeLastmod = doc.createElement("lastmod")
  58. #nodeLastmod.appendChild(doc.createTextNode(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
  59. nodeLastmod.appendChild(doc.createTextNode(datetime.datetime.now().strftime('%Y-%m-%d')))
  60. #将各叶子节点添加到父节点url中,
  61. #最后将url节点添加到根节点root中
  62. nodeUrl.appendChild(nodeLoc)
  63. nodeUrl.appendChild(nodeLastmod)
  64. root.appendChild(nodeUrl)
  65. #开始写xml文档,"w+",打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
  66. fp = open('c:\\usestudioxml\\sitemap1.xml', 'w+')
  67. #写入XML头,类似<?xml version="1.0" encoding="utf-8"?>
  68. #indent='\t' 指第一个urlset的空格个数 addindent='\t'为后面的元素的空格间距。
  69. #doc.writexml(fp, indent='\t', addindent='\t', newl='\n', encoding="utf-8")
  70. doc.writexml(fp, addindent=' ', newl='\n', encoding="utf-8")
  71. _ux=UsestudioXML()
  72. _ux.apiSitemap()
  73. _ux.apiXML()