Python 구현 대상 을 xml 로 변환 하 는 방법 예시
# -*- coding:UTF-8 -*-
'''''
Created on 2010-4-20
@author:
'''
import xml.etree.ElementTree as ET
import xml.dom.minidom as minidom
from addrbook.domain import Person
class Converter(object):
'''''
Python xml
'''
root = None#
def __init__(self):
pass
@staticmethod
def createRoot(rootTag):
'''''
'''
root = ET.Element(rootTag)
return root
@staticmethod
def getXmlString(element,defaultEncoding='utf-8'):
'''''
xml
'''
try:
rough_string = ET.tostring(element, defaultEncoding)
reparsed = minidom.parseString(rough_string)
return reparsed.toprettyxml(indent=" " , encoding=defaultEncoding)
except:
print 'getXmlString: xml, '
return ''
@staticmethod
def classToElements(classobj,rootTag=None):
'''''
, ,
classobj:
rootTag:
'''
attrs = None#
elelist = []#
try:
attrs = classobj.__dict__.keys()# ( )
except:
print 'classToElements: , '
if attrs != None and len(attrs) > 0:#
for attr in attrs:
attrvalue = getattr(classobj, attr)#
#
attrE = ET.Element(attr)
attrE.text = attrvalue
#
elelist.append(attrE)
return elelist
@staticmethod
def classToXML(classobj,rootTag=None):
'''''
Python xml, xml , None
classobj:
rootTag:
'''
try:
classname = classobj.__class__.__name__ #
if rootTag != None:
root = Converter.createRoot(rootTag)
else:
root = Converter.createRoot(classname)
elelist = Converter.classToElements(classobj, rootTag)
for ele in elelist:
root.append(ele)
return root
except:
print 'classToXML: , '
return None
@staticmethod
def collectionToXML(listobj,rootTag='list'):
'''''
( 、 、 ) xml, xml , None
'''
try:
classname = listobj.__class__.__name__ #
root = Converter.createRoot(rootTag)
if isinstance(listobj, list) or isinstance(listobj, tuple):#
if len(listobj) >= 0:
for obj in listobj:#
itemE = Converter.classToXML(obj)
root.append(itemE)
elif isinstance(listobj, dict):#
if len(listobj) >= 0:
for key in listobj:#
obj = listobj[key]
itemE = Converter.classToXML(obj)
itemE.set('key', key)
root.append(itemE)
else:
print 'listToXML: , :'+classname+' '
return root
except:
print 'collectionToXML: , xml '
return None
if __name__ == '__main__':
p1 = Person('dredfsam',' ','133665')
p2 = Person('dream',' ','r')
p3 = Person(' ',' ','sdf')
personList = {}
personList['p1']= p1
personList['p2']= p2
personList['p3']= p3
# personList.append(p1)
# personList.append(p2)
# personList.append(p3)
root = Converter.collectionToXML(personList)
print Converter.getXmlString(root)
# plist = (p1,p2,p3)#{'name':'sdf'}
# print type(plist)
# print type(plist),isinstance(plist, list)
PS:여기 서 xml 작업 에 관 한 온라인 도 구 를 몇 가지 더 제공 하여 참고 하 시기 바 랍 니 다.온라인 XML/JSON 상호 변환 도구:
http://tools.jb51.net/code/xmljson
온라인 포맷 XML/온라인 압축 XML:
http://tools.jb51.net/code/xmlformat
XML 온라인 압축/포맷 도구:
http://tools.jb51.net/code/xml_format_compress
XML 코드 온라인 포맷 미화 도구:
http://tools.jb51.net/code/xmlcodeformat
파 이 썬 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.