PYTHON 이 xml 파일 을 읽 고 쓰 는 방법

http://www.2cto.com/kf/201205/133709.html
생 성 할 xml 파일 형식 은 다음 과 같 습 니 다:[python]                    sample xml thing                                                      ma                                              xiaoju                                                Springs Widgets, Inc.                                              First                                  I think widgets are greate.You should buy lots of them forom                                Spirngy Widgts, Inc                                 
코드:[python]from xml.dom import minidom,Node    doc = minidom.Document()    doc.appendChild(doc.createComment("Simple xml document__chapter 8"))    #generate the book  book = doc.createElement('book')  doc.appendChild(book)    #the title  title = doc.createElement('title')  title.appendChild(doc.createTextNode("sample xml thing"))  book.appendChild(title)    #the author section  author = doc.createElement("author")  book.appendChild(author)  name = doc.createElement('name')  author.appendChild(name)  firstname = doc.createElement('first')  firstname.appendChild(doc.createTextNode("ma"))  name.appendChild(firstname)  lastname = doc.createElement('last')  name.appendChild(lastname)  lastname.appendChild(doc.createTextNode("xiaoju"))    affiliation = doc.createElement("affiliation")  affiliation.appendChild(doc.createTextNode("Springs Widgets, Inc."))  author.appendChild(affiliation)    #The chapter  chapter = doc.createElement('chapter')  chapter.setAttribute('number', '1')  title = doc.createElement('title')  title.appendChild(doc.createTextNode("First"))  chapter.appendChild(title)  book.appendChild(chapter)    para = doc.createElement('para')  para.appendChild(doc.createTextNode("I think widgets are greate.\  You should buy lots of them forom"))  company = doc.createElement('company')  company.appendChild(doc.createTextNode("Spirngy Widgts, Inc"))  para.appendChild(company)  chapter.appendChild(para)      print doc.toprettyxml() 
http://lulinbest.blog.sohu.com/75921823.html
이전에 Python 의 minidom 으로 XML 파일 을 만 드 는 프로그램 을 쓴 적 이 있 습 니 다.이 제 는 XML 파일 의 내용 을 읽 어야 합 니 다.먼저 생각 나 는 것 은 minidom 모듈 입 니 다.테스트 를 작성 한 후에 원 하 는 대로 함수 의 사용 방식 을 파악 하 였 습 니 다.AJAX 의 DOM 작업 과 다 를 바 없습니다.
  예전 부터 element tree 가 XML 파일 을 처리 할 때 Python 프로그래머 들 에 게 인기 가 많 았 고 element tree 의 설치 패 키 지 를 설치 한 적 이 있다 는 것 을 알 고 있 었 습 니 다.현재 사용 하고 있 는 Python 2.5 에 수록 되 어 있 습 니 다.XML 파일 을 처리 하려 면 더 효율 적 이 고 사용 하기 쉬 운 모듈 을 사용 하 는 것 도 배 워 야 합 니 다.한참 동안 모색 해 보 았 습 니 다.이름 공간 에 관 한 함수 가 사용 되 지 않 은 것 외 에 도...다른 함 수 는 모두 사용 해 보 았 습 니 다.나중에 XML 파일 을 처리 하면 마음 에 들 수 있 습 니 다.
다음은 간단 한 예 입 니 다.이 를 통 해 각 함수 의 사용 방법 을 알 수 있 습 니 다. 
from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import SubElement
from xml.etree.ElementTree import dump
from xml.etree.ElementTree import Comment
from xml.etree.ElementTree import tostring

'''
<?xml version="1.0"?>
<PurchaseOrder>
  <account refnum="2390094"/>
  <item sku="33-993933" qty="4">
    <name>Potato Smasher</name>
    <description>Smash Potatoes like never before.</description>
  </item>
</PurchaseOrder>
'''

## Writing the content to xml document
book = ElementTree()

purchaseorder = Element('PurchaseOrder')
book._setroot(purchaseorder)

SubElement(purchaseorder,  'account', {'refnum' : "2390094"})

item = Element("item", {'sku' : '33-993933', 'qty' : '4'})
purchaseorder.append(item)
print item.items()       # [('sku', '33-993933'), ('qty', '4')]
print item.attrib        # {'sku': '33-993933', 'qty': '4'}
print item.get('sku')    # 33-993933
SubElement(item, 'name').text = "Potato Smasher"
SubElement(item, 'description').text = "Smash Potatoes like never before."

#book.write('book.xml',"utf-8")

#print tostring(purchaseorder)

#import sys
#book.write(sys.stdout)

#dump(book)

## Displaying the content of the xml document
print purchaseorder.find('account')
print purchaseorder.find('account').get('refnum')
print purchaseorder.findall('account')[0].get('refnum')

print purchaseorder.find('item/name')
print purchaseorder.find('item/name').text

## How to use ElementTree([element,] [file])
## 1. From standard XML element, it becomes root element
print ElementTree(item).getroot().find('name').text
## 2. From XML file
print ElementTree(file='book.xml').getroot().find('item/description').text


## Create an iterator
for element in purchaseorder.getiterator():
    print element.tag


## Get pretty look
def indent(elem, level=0):
    i = "
" + level*" " if len(elem): if not elem.text or not elem.text.strip(): elem.text = i + " " for e in elem: indent(e, level+1) if not e.tail or not e.tail.strip(): e.tail = i if level and (not elem.tail or not elem.tail.strip()): elem.tail = i return elem if __name__=="__main__": dump(indent(purchaseorder)) book.write('book.xml',"utf-8")

좋은 웹페이지 즐겨찾기