Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 xml 파일의 특정 노드를 얻는 방법은 무엇입니까?


xml 라이브러리를 사용하면 xml 파일에서 원하는 노드를 가져올 수 있습니다. 그러나 주어진 노드를 추출하려면 xpath를 사용하여 노드를 얻는 방법을 알아야 합니다. XPath에 대한 자세한 내용은 https://www.w3schools.com/xml/xml_xpath.asp에서 확인할 수 있습니다.

예시

예를 들어 다음 구조의 xml 파일이 있다고 가정합니다.

<bookstore>
    <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
    </book>
    <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
    </book>
</bookstore>

그리고 lang 속성이 en인 모든 제목 노드를 추출하려면 다음 코드가 있어야 합니다.

from xml.etree.ElementTree import ElementTree
tree = ElementTree()
root = tree.parse("my_file.xml")
for node in root.findall("//title[@lang='en']"):
    for type in node.getchildren():
        print(type.text)