PYTHON 이 xml 파일 을 읽 고 쓰 는 방법
생 성 할 xml 파일 형식 은 다음 과 같 습 니 다:[python]
코드:[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")
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
원생 Ajax와 jQuery Ajax의 차이점 예시 분석선언: 이번에 소개한 것은 aax와 백그라운드를 이용하여 데이터 교환을 하는 작은 예이기 때문에 demo는 서버를 통해 열어야 합니다.서버 환경은 구축하기 매우 좋다. 인터넷에서wamp나xampp를 다운로드하여 한 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.