이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 13625|회답: 0

[출처] 파이썬은 XML 파일 파싱을 구현합니다

[링크 복사]
게시됨 2018. 6. 5. 오후 2:27:09 | | |
1. XML 소개

XML(확장형 마크업 언어)은 데이터를 전송하고 저장하도록 설계된 확장 가능한 마크업 언어를 의미하며, 오늘날 다양한 분야에서 다양한 응용 분야를 가진 많은 신기술의 핵심이 되었습니다. 이는 웹이 일정 단계에 이르면서 필연적으로 만들어진 결과물로, SGML의 핵심 특성, HTML의 단순한 특성, 그리고 명확하고 잘 구조화된 등 많은 새로운 특징을 갖추고 있습니다.

테스트. XML 파일

<?XML Version="1.0" encoding="UTF-8"?>
<catalog>
    <maxid>4</maxid>
    <login username="pytest" passwd='123456'>
        <caption>파이썬</caption>
        <item id="4">
            <caption>테스트</caption>
        </item>
    </login>
    <item id="2">
        <caption>조프</caption>
    </item>
</catalog>

XML에 대한 자세한 소개는 다음을 참고하시기 바랍니다:http://www.w3school.com.cn/xmldom/dom_nodetype.asp

2. XML 문서 구문 분석

파이썬이 XML을 파싱하는 데 일반적인 세 가지 방법이 있습니다: 하나는 xml.dom.* 모듈로, 이는 W3C DOM API의 구현체로, DOM API를 처리해야 할 때 매우 적합합니다; 두 번째는 xml.sax.* 모듈로, SAX API의 구현체로, 편리함을 희생하고 속도와 메모리 사용량을 위해 사용되며, SAX는 이벤트 기반 API로, 메모리에 완전히 로드하지 않고도 방대한 수의 문서를 "공중에서 처리할 수 있다"; 세 번째는 xml.etree.ElementTree 모듈(줄여서 ET)으로, DOM보다 훨씬 빠른 가벼운 Python 스타일 API를 제공하며, SAX와 비교할 때 사용하기 편리한 API가 많습니다. ET의 ET.iterparse는 "공중" 처리 방식을 제공하며, 전체 문서를 메모리에 로드할 필요가 없고 ET의 평균 성능도 SAX와 비슷합니다. 하지만 API는 조금 더 효율적이고 사용하기 쉽습니다.

2.1 xml.dom.*

문서 객체 모델(DOM)은 확장 가능한 마크업 언어를 다루기 위해 W3C 조직에서 권장하는 표준 프로그래밍 인터페이스입니다. DOM 파서가 XML 문서를 파싱할 때, 전체 문서를 한 번에 읽고, 문서 내 모든 요소를 트리 구조로 메모리에 저장한 후, DOM이 제공하는 다양한 함수를 사용해 문서의 내용과 구조를 읽거나 수정하거나, 수정된 내용을 XML 파일에 쓸 수 있습니다. 파이썬에서 xml.dom.minidom을 사용해 xml 파일을 파싱하세요.

a. 서브태그 획득
b. 동일한 태그명을 구별하는 라벨
c. 태그 속성 값을 얻습니다
d. 라벨 쌍 간 데이터 얻기

출력:

2.2 xml.etree.ElementTree

ElementTree는 XML을 다루기 위해 탄생했으며, Python 표준 라이브러리에는 두 가지 구현체가 있습니다: 하나는 순수 Python 구현체로, 예: xml.etree.ElementTree이고, 다른 하나는 더 빠른 xml.etree.cElementTree입니다. 참고: C 언어를 사용해 구현하는 것이 더 빠르고 메모리 소모도 적습니다.

a. 루트 노드의 다음 층을 횡단합니다
b. 개별 태그, 속성, 텍스트에 대한 첨자 접근
c. 루트 아래에서 지정된 태그를 찾는다
d. XML 파일 횡단
e. XML 파일 수정

출력:

첨부:

2.3 xml.sax.*

SAX는 SAX를 사용해 XML을 파서 파서와 이벤트 핸들러의 두 부분으로 파싱하는 이벤트 기반 API입니다.

파서는 XML 문서를 읽고 요소 시작과 요소 종료 이벤트와 같은 이벤트를 이벤트 핸들러로 전송하는 역할을 합니다

이벤트 프로세서는 이벤트에 응답하고 전달된 XML 데이터를 처리하는 책임을 집니다

일반적인 상황:

(1) 대형 문서 처리

(2) 문서의 일부만 필요하거나 특정 정보는 파일에서만 얻을 수 있습니다

(3) 제 객체 모델을 직접 만들고 싶습니다





이전의:해결책: Visual Studio 설치에 사용된 설치 프로그램이 불완전합니다
다음:VS 코드 빠른 서식 단축키
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com