|
@@ -1,46 +1,93 @@
|
|
|
# -*-coding:utf-8-*-
|
|
|
#支持中文必须加上上面一句话
|
|
|
-
|
|
|
-__author__ = 'Administrator'
|
|
|
-
|
|
|
+__author__ = 'cwh'
|
|
|
+#xml文件处理类
|
|
|
import xml.dom.minidom
|
|
|
-
|
|
|
+#包含时间类
|
|
|
+import datetime
|
|
|
+#导入数据库处理文件
|
|
|
+from usestudiodatabase import ApiSitemapData
|
|
|
|
|
|
class UsestudioXML:
|
|
|
- #在内存中创建一个空的文档
|
|
|
- doc = xml.dom.minidom.Document()
|
|
|
+
|
|
|
#数据
|
|
|
- managerList =[{'name': 'joy', 'age': 27, 'sex': '女'},
|
|
|
- {'name': 'tom', 'age': 30, 'sex': '男'},
|
|
|
- {'name': 'ruby', 'age': 29, 'sex': '女'}
|
|
|
- ]
|
|
|
- def createRoot(self):
|
|
|
- #创建一个根节点Managers对象
|
|
|
- root = self.doc.createElement('Managers')
|
|
|
+ apidb=ApiSitemapData()
|
|
|
+ apiData=apidb.selectData();
|
|
|
+
|
|
|
+ #当索引超过五万时,启用此函数。
|
|
|
+ def apiSitemap(self):
|
|
|
+ #在内存中创建一个空的文档
|
|
|
+ doc = xml.dom.minidom.Document()
|
|
|
+ #创建一个根节点sitemapindex对象
|
|
|
+ root = doc.createElement('sitemapindex')
|
|
|
+ doc.appendChild(root)
|
|
|
+
|
|
|
+ #当索引文件超过五万时,以下文件需要循环生成。
|
|
|
+ nodeUrl = doc.createElement('sitemap')
|
|
|
+ #给叶子节点loc设置一个文本节点,用于显示站点地图的url
|
|
|
+ nodeLoc = doc.createElement('loc')
|
|
|
+ nodeLoc.appendChild(doc.createTextNode('http://api.1473.cn/seo/sitemap1.xml'))
|
|
|
+ #添加时间节点
|
|
|
+ nodeLastmod = doc.createElement("lastmod")
|
|
|
+ #nodeLastmod.appendChild(doc.createTextNode(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
|
|
|
+ nodeLastmod.appendChild(doc.createTextNode(datetime.datetime.now().strftime('%Y-%m-%d')))
|
|
|
+ #将各叶子节点添加到父节点url中,
|
|
|
+ #最后将url节点添加到根节点root中
|
|
|
+ nodeUrl.appendChild(nodeLoc)
|
|
|
+ nodeUrl.appendChild(nodeLastmod)
|
|
|
+ root.appendChild(nodeUrl)
|
|
|
+
|
|
|
+
|
|
|
+ #开始写xml文档,"w+",打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
|
|
|
+ fp = open('c:\\usestudioxml\\sitemapindex.xml', 'w+')
|
|
|
+ #写入XML头,类似<?xml version="1.0" encoding="utf-8"?>
|
|
|
+ #indent='\t' 指第一个urlset的空格个数 addindent='\t'为后面的元素的空格间距。
|
|
|
+ #doc.writexml(fp, indent='\t', addindent='\t', newl='\n', encoding="utf-8")
|
|
|
+ doc.writexml(fp, addindent=' ', newl='\n', encoding="utf-8")
|
|
|
+
|
|
|
+ def apiXML(self):
|
|
|
+
|
|
|
+ #在内存中创建一个空的文档
|
|
|
+ doc = xml.dom.minidom.Document()
|
|
|
+ #创建一个根节点root对象
|
|
|
+ root = doc.createElement('urlset')
|
|
|
+
|
|
|
#设置根节点的属性
|
|
|
- root.setAttribute('company', 'xx科技')
|
|
|
- root.setAttribute('address', '科技软件园')
|
|
|
+ #root.setAttribute('company', '有思俱乐部')
|
|
|
+ #root.setAttribute('address', '科技软件园')
|
|
|
#将根节点添加到文档对象中
|
|
|
- self.doc.appendChild(root)
|
|
|
- def addNode(self):
|
|
|
- for i in self.managerList:
|
|
|
- nodeManager = self.doc.createElement('Manager')
|
|
|
- nodeName = self.doc.createElement('name')
|
|
|
- #给叶子节点name设置一个文本节点,用于显示文本内容
|
|
|
- nodeName.appendChild(self.doc.createTextNode(str(i['name'])))
|
|
|
-
|
|
|
- nodeAge = self.doc.createElement("age")
|
|
|
- nodeAge.appendChild(self.doc.createTextNode(str(i["age"])))
|
|
|
-
|
|
|
- nodeSex = self.doc.createElement("sex")
|
|
|
- nodeSex.appendChild(self.doc.createTextNode(str(i["sex"])))
|
|
|
-
|
|
|
- #将各叶子节点添加到父节点Manager中,
|
|
|
- #最后将Manager添加到根节点Managers中
|
|
|
- nodeManager.appendChild(nodeName)
|
|
|
- nodeManager.appendChild(nodeAge)
|
|
|
- nodeManager.appendChild(nodeSex)
|
|
|
- root.appendChild(nodeManager)
|
|
|
- #开始写xml文档
|
|
|
- fp = open('c:\\wcx\\Manager.xml', 'w')
|
|
|
- self.doc.writexml(fp, indent='\t', addindent='\t', newl='\n', encoding="utf-8")
|
|
|
+
|
|
|
+ doc.appendChild(root)
|
|
|
+ for i in self.apiData:
|
|
|
+
|
|
|
+ nodeUrl = doc.createElement('url')
|
|
|
+
|
|
|
+ #给叶子节点loc设置一个文本节点,用于显示站点地图的url
|
|
|
+ nodeLoc = doc.createElement('loc')
|
|
|
+ nodeLoc.appendChild(doc.createTextNode(i[0]))
|
|
|
+
|
|
|
+ #添加时间节点
|
|
|
+ nodeLastmod = doc.createElement("lastmod")
|
|
|
+ #nodeLastmod.appendChild(doc.createTextNode(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
|
|
|
+ nodeLastmod.appendChild(doc.createTextNode(datetime.datetime.now().strftime('%Y-%m-%d')))
|
|
|
+
|
|
|
+ #将各叶子节点添加到父节点url中,
|
|
|
+ #最后将url节点添加到根节点root中
|
|
|
+
|
|
|
+ nodeUrl.appendChild(nodeLoc)
|
|
|
+ nodeUrl.appendChild(nodeLastmod)
|
|
|
+ root.appendChild(nodeUrl)
|
|
|
+
|
|
|
+ #开始写xml文档,"w+",打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
|
|
|
+ fp = open('c:\\usestudioxml\\sitemap1.xml', 'w+')
|
|
|
+
|
|
|
+ #写入XML头,类似<?xml version="1.0" encoding="utf-8"?>
|
|
|
+ #indent='\t' 指第一个urlset的空格个数 addindent='\t'为后面的元素的空格间距。
|
|
|
+
|
|
|
+ #doc.writexml(fp, indent='\t', addindent='\t', newl='\n', encoding="utf-8")
|
|
|
+ doc.writexml(fp, addindent=' ', newl='\n', encoding="utf-8")
|
|
|
+
|
|
|
+_ux=UsestudioXML()
|
|
|
+_ux.apiSitemap()
|
|
|
+_ux.apiXML()
|
|
|
+
|