python xml 파일 읽 기 방법 분석
xml 이란 무엇 입 니까?
xml 는 태그 언어 를 확장 할 수 있 습 니 다.데 이 터 를 표시 하고 데이터 형식 을 정의 할 수 있 으 며 사용자 가 자신의 태그 언어 를 정의 할 수 있 는 소스 언어 입 니 다.
abc.xml
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption> </caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>
Ok,구조 적 으로 우리 가 흔히 볼 수 있 는 HTML 하이퍼텍스트 태그 언어 와 같 습 니 다.그러나 그들 이 디자인 한 목적 은 다르다.하이퍼텍스트 표기 언어데 이 터 를 표시 하기 위해 디자인 되 었 고 그 초점 은 데이터 의 외관 이다.그것 은 데 이 터 를 전송 하고 저장 하 는 데 사용 되 는데 그 초점 은 데이터 의 내용 이다.그러면 다음 과 같은 특징 이 있다.
우선,태그 쌍 으로 구성 되 어 있 습 니 다.
탭 에 속성 이 있 습 니 다:
태그 쌍 은 데 이 터 를 삽입 할 수 있 습 니 다:
탭 은 하위 탭 을 삽입 할 수 있 습 니 다(등급 관계 가 있 음).
태그 속성 가 져 오기
그렇다면 이러한 유형의 파일 을 python 으로 읽 는 방법 을 소개 합 니 다.
#coding=utf-8
import xml.dom.minidom
# xml
dom = xml.dom.minidom.parse('abc.xml')
#
root = dom.documentElement
print root.nodeName
print root.nodeValue
print root.nodeType
print root.ELEMENT_NODE
mxl.dom.minidom 모듈 은 xml 파일 을 처리 하 는 데 사용 되 기 때문에 먼저 도입 해 야 합 니 다.xml.dom.minidom.parse()는 xml 파일 을 열 고 이 파일 의 대상 dom 변 수 를 사용 합 니 다.
document Element 는 dom 대상 의 문서 요 소 를 얻 고 얻 은 대상 을 root 에 게 줍 니 다.
노드 마다 nodeName,nodeValue,nodeType 속성 이 있 습 니 다.
노드 이름 은 노드 이름 입 니 다.
nodeValue 는 결점 의 값 으로 텍스트 결점 에 만 유효 합 니 다.
node Type 은 결점 의 유형 입 니 다.catalog 는 ELEMENTNODE 형식
현재 다음 과 같은 몇 가지 가 있다.
'ATTRIBUTE_NODE'
'CDATA_SECTION_NODE'
'COMMENT_NODE'
'DOCUMENT_FRAGMENT_NODE'
'DOCUMENT_NODE'
'DOCUMENT_TYPE_NODE'
'ELEMENT_NODE'
'ENTITY_NODE'
'ENTITY_REFERENCE_NODE'
'NOTATION_NODE'
'PROCESSING_INSTRUCTION_NODE'
'TEXT_NODE'
NodeTypes-유명 상수
http://www.w3school.com.cn/xmldom/dom_nodetype.asp
하위 탭 가 져 오기
현재 catalog 의 하위 탭 을 가 져 올 탭 name
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption> </caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>
요소 이름 을 아 는 하위 요소 에 대해 서 는 getElementsByTagName 방법 으로 가 져 올 수 있 습 니 다.
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption> </caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>
같은 탭 이름 의 탭 을 구분 하 는 방법:
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption> </caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>
과
#coding=utf-8
import xml.dom.minidom
# xml
dom = xml.dom.minidom.parse('abc.xml')
#
root = dom.documentElement
bb = root.getElementsByTagName('caption')
b= bb[2]
print b.nodeName
bb = root.getElementsByTagName('item')
b= bb[1]
print b.nodeName
root.getElementsByTagName('caption')은 caption 이라는 탭 을 얻 었 습 니 다.b[0]는 탭 의 첫 번 째 를 표시 합 니 다.b[2],이 태그 의 세 번 째 를 표시 합 니 다.태그 속성 값 가 져 오기
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption> </caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>
#coding=utf-8
import xml.dom.minidom
# xml
dom = xml.dom.minidom.parse('abc.xml')
#
root = dom.documentElement
itemlist = root.getElementsByTagName('login')
item = itemlist[0]
un=item.getAttribute("username")
print un
pd=item.getAttribute("passwd")
print pd
ii = root.getElementsByTagName('item')
i1 = ii[0]
i=i1.getAttribute("id")
print i
i2 = ii[1]
i=i2.getAttribute("id")
print i
getAttribute 방법 은 요소 의 속성 에 대응 하 는 값 을 얻 을 수 있 습 니 다.탭 사이 의 데이터 가 져 오기
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<maxid>4</maxid>
<login username="pytest" passwd='123456'>
<caption>Python</caption>
<item id="4">
<caption> </caption>
</item>
</login>
<item id="2">
<caption>Zope</caption>
</item>
</catalog>
탭 사이 에 데이터 가 있 습 니 다.이 데 이 터 를 어떻게 얻 습 니까?탭 사이 의 데 이 터 를 얻 는 데 는 여러 가지 방법 이 있 습 니 다.
방법 1
#coding=utf-8
import xml.dom.minidom
# xml
dom = xml.dom.minidom.parse('abc.xml')
#
root = dom.documentElement
cc=dom.getElementsByTagName('caption')
c1=cc[0]
print c1.firstChild.data
c2=cc[1]
print c2.firstChild.data
c3=cc[2]
print c3.firstChild.data
firstChild 속성 은 선 택 된 노드 의 첫 번 째 키 노드 를 되 돌려 줍 니 다.data 는 이 노드 의 데 이 터 를 가 져 오 는 것 을 표시 합 니 다.방법 2
#coding=utf-8
from xml.etree import ElementTree as ET
per=ET.parse('abc.xml')
p=per.findall('./login/item')
for oneper in p:
for child in oneper.getchildren():
print child.tag,':',child.text
p=per.findall('./item')
for oneper in p:
for child in oneper.getchildren():
print child.tag,':',child.text
방법 2 는 좀 복잡 합 니 다.인용 모듈 도 앞의 것 과 다 릅 니 다.findall 은 어느 단계 탭 에서 옮 겨 다 니 는 지 지정 하 는 데 사 용 됩 니 다.getchildren 방법 은 문서 순서에 따라 모든 하위 탭 을 되 돌려 줍 니 다.태그 이름(child.tag)과 태그 의 데이터(child.text)를 출력 합 니 다.
사실 방법 2 의 역할 은 여기에 있 지 않 습 니 다.그 핵심 기능 은 특정한 단계 의 탭 에 있 는 모든 하위 탭 을 옮 겨 다 닐 수 있 는 것 입 니 다.
python 이 xml 파일 을 읽 는 방법 에 대한 분석 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python 이 xml 파일 을 읽 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.