Python 직렬화 기능의 xml에 대한 자세한 소개

高洛峰
풀어 주다: 2017-03-26 17:14:19
원래의
1624명이 탐색했습니다.

이 글에서는 주로 Python 직렬화 기능의 xml을 자세히 소개하고 있는데, 관심 있는 친구들은

<diva_list>
    <diva name="hamasaki ayumi">
        <state flop="yes">1</state>
        <year>1978</year>
        <album_sales_volume>27804358</album_sales_volume>
        <album name="A song for xx" sn="1st"/>
        <album name="LOVEppears" sn="2nd"/>
    </diva>
    <diva name="koda kumi">
        <state flop="yes">2</state>
        <year>1982</year>
     <album_sales_volume>8273371</album_sales_volume>
        <album name="affection" sn="1st"/>
        <album name="grow into one" sn="2nd"/>
    </diva>
</diva_list>
로그인 후 복사

를 참조하세요. 위는 xml 텍스트를 처리하려는 경우의 예입니다. 텍스트를 사용하려면 모듈을 가져와야 합니다.

import xml.etree.ElementTree as ET

#xml 모듈 이름이 너무 길어서 ET라는 별칭을 붙여서 사용했습니다.

ET.parse()는 파일에서 직접 xml 텍스트를 읽고 xml 텍스트를 xml 트리 객체로 구문 분석합니다.

tree = ET.parse("diva.xml")

xml 트리의 루트 노드를 가져옵니다.

root = tree.getroot()

루트 노드의 레이블(이름)을 가져옵니다.

root.tag

#Traverse xml document

루트의 하위 항목:

print(child.tag, child.attrib)

for i in child:

print(i.tag,i.text)

주의하세요! xml 텍스트 아래의 하위 노드를 가져오려면 루트 노드를 통해 가져와야 합니다. 노드 뒤에 .tag를 추가하여 각 노드에 포함된 콘텐츠를 가져옵니다. node.attrib는 노드의 레이블에 존재하는 속성을 가져올 수 있습니다.

# 각 하위 노드의 album_sales_volume 태그에서 텍스트 콘텐츠를 가져옵니다.

for i in root.iter("album_sales_volume"):

print i.text

#레이블의 속성을 가져오려면 텍스트를 직접 변경하세요. 속성화하기 그게 다야.

수정:

root.iter('연도')의 노드:

new_year = int(node.text) + 1

node. text = str(new_year) # 콘텐츠 수정

node.set("flop","no") # 라벨 속성 수정.

tree.write("xmltest.xml")

삭제:

root.findall('country')의 국가:

순위 = int(country.find('rank').text)

순위가 50보다 큰 경우:

root.remove(country)

tree.write('output. xml')

root.findall()은 루트 노드부터 검색하여 지정된 이름을 가진 하위 노드를 찾는 데 사용됩니다.

root.remove()는 노드를 삭제하는 데 사용됩니다.

xml 텍스트를 생성합니다.

xml.etree.ElementTree를 ET로 가져오기

new_xml = ET.Element("namelist")

name = ET.SubElement(new_xml,"name",attrib= {"등록됨":"예"})

age = ET.SubElement(name,"age",attrib={"checked":"no"})

sex = ET. SubElement(name,"sex")

sex.text = '33'

name2 = ET.SubElement(new_xml,"name",attrib={"enrolled":"no"} )

age = ET.SubElement(name2,"age")

age.text = '19'

et = ET.ElementTree(new_xml) #문서 객체 생성

et.write("test.xml", 인코딩="utf-8",xml_declaration=True)

ET.dump(new_xml) #생성된 형식 인쇄

위 내용은 Python 직렬화 기능의 xml에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿