12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- # -*-coding:utf-8-*-
- #支持中文必须加上上面一句话
- __author__ = 'cwh'
- #xml文件处理类
- import xml.dom.minidom
- #包含时间类
- import datetime
- #导入数据库处理文件
- from usestudiodatabase import ApiSitemapData
- class UsestudioXML:
- #数据
- 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', '有思俱乐部')
- #root.setAttribute('address', '科技软件园')
- #将根节点添加到文档对象中
- 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()
|