2016-11-09 3 views
0

Python3에서 ElementTree XML API를 사용하고 있으며 기본적인 것으로 보이는 질문이 있습니다. 문서에서 올바른 기능을 찾지 못했습니다. 그것. 시작 지점은 문자열이 name 인 xml 파일을 고려한 것입니다. 나는 chld가 존재하는지 검사하는 함수를 찾고있다. 그 이름으로. 현재 내가 무엇을하고 있는가하는 것입니다 :Python에서 XML 구문 분석을 위해 ElementTree를 사용할 때 하위 요소가 존재하는지 검사

 import xml.etree.ElementTree as ET 
    tree = ET.parse(name) 
    root = tree.getroot() 
    item = root.getchildren()[2] 

내가 찾고 있어요 항목이 위치 2 (3 항목)에 있음을 알고 있기 때문에. 그러나 나는 다음과 같은 것을 가지고 싶습니다.

누군가이 기능을 제안 할 수 있습니까? 또는 더 나은 방법이 접근? 고맙습니다. the documentation을 인용

답변

2

:

Element.findall()는 현재의 구성 요소의 직접 자식 인 태그 만 요소를 찾는다. Element.find()는 특정 태그 그래서

로 첫 아이를 발견, 시도 :

item = root.find('itemName') 

.find() 반환 None 이러한 요소가 존재하지 않는 경우입니다. .findall()은이 경우 빈 목록을 반환합니다.

데모 :

import xml.etree.ElementTree as ET 
root = ET.XML('<root><item1/><item2/><itemName/></root>') 
assert root.getchildren()[2] is root.find('itemName')