2017-05-02 1 views
0

NOAA에서 XML을 가져와 Python에서 minidom을 사용하여 구문 분석하려고하지만 값을 검색 할 수 없습니다. Python에서 XML을 구문 분석하는 방법

`

`<parameters applicable-location="point1"> 
    <temperature type="maximum" units="Fahrenheit" time-layout="k-p24h-n7-1"> 
    <name>Daily Maximum Temperature</name> 
    <value>75</value> 
    <value>67</value> 
    <value>65</value> 
    <value>72</value> 
    <value>65</value> 
    <value>64</value> 
    <value>62</value> 
    </temperature> 
</parameters> 

나는 태그 최대 온도에서 값을 검색 할 필요가있다.

+0

이 예제를 더 작은 테스트 세트로 트리밍 할 수 있습니다. 하지만 더 중요한 것은 기존 코드를 게시해야한다는 것입니다. 우리가 볼 수없는 코드에 대한 수정을 제안 할 수는 없습니다. – tdelaney

+0

@tdelaney : ask [ask]와 [mcve]를 읽으십시오. – boardrider

답변

3

BeautifulpSoup을 사용하는 것이 쉬운 방법입니다.

시도해 볼 수 있습니다. 이렇게.

from bs4 import BeautifulSoup 

XML_STRING = """ 
<parameters applicable-location="point1"> 
    <temperature type="maximum" units="Fahrenheit" time-layout="k-p24h-n7-1"> 
    <name>Daily Maximum Temperature</name> 
    <value>75</value> 
    <value>67</value> 
    <value>65</value> 
    <value>72</value> 
    <value>65</value> 
    <value>64</value> 
    <value>62</value> 
    </temperature> 
</parameters> 
""" 

soup = BeautifulSoup(XML_STRING, 'html.parser') 
for tag in soup.find_all('value'): 
    print(tag.string) 
2

Beautiful Soup을 libxml과 함께 사용할 수 있습니다. 당신은 python3를 사용하는 경우

sudo apt-get install libxml2-dev libxslt1-dev lib32z1-dev python-dev -y 
pip install lxml 
pip install beautifulsoup4 

python3-devpython-dev 교체 : 여기에 우분투 14.04 테스트 올바른 설정을 수행하는 방법이다.

file_content = """your xml string here""" 
from bs4 import BeautifulSoup 
soup = BeautifulSoup(file_content, "xml") 
max_temp_list = [int(item.string) for item in soup.find("temperature", {"type": "maximum"}).findAll("value")] 
print(max_temp_list) 

요소를 찾는 또 다른 예는 documentation를 참조하십시오 : 다음과 같이 XML을 구문 분석 할 수 있습니다.

관련 문제