2017-05-01 4 views
1

XML解析:のpython、美しいスープ、私は次のXMLから緯度と経度の値を取得できますか

<?xml version="1.0" encoding="utf-8"?> 
<location source="FoundByWifi"> 
<coordinates latitude="49.7926292" longitude="24.0538406" 
nlatitude="49.7935180" nlongitude="24.0552174" /> 
</location> 

私はget_textを使用しようとしたが、それはこの方法では動作しません(

r = requests.get(url) 
soup = BeautifulSoup(r.text) 
lat = soup.find('coordinates','latitude').get_text(strip=True) 

答えて

2

'緯度 '座標' タグ内の属性である。ひとたびあなたが座標を見つけた場合、スープオブジェクトはすべての属性を辞書型のキー値ストアに格納します。

だから、あなたの場合には、座標タグを発見した後、ように「緯度」キーをチェックします。

lat = soup.find('coordinates')['latitude'] 

あなたも、先頭または末尾に余分な空白の結果を取り除くことができます。

lat = soup.find('coordinates')['latitude'].strip() 
2

Check online demo

html_doc = """ 
<?xml version="1.0" encoding="utf-8"?> 
<location source="FoundByWifi"> 
<coordinates latitude="49.7926292" longitude="24.0538406" 
nlatitude="49.7935180" nlongitude="24.0552174" /> 
</location> 
""" 
from bs4 import BeautifulSoup 
soup = BeautifulSoup(html_doc, 'html.parser') 
lat = soup.find_all('coordinates') 

for i in lat: 
    print(i.attrs['latitude']) 
    print(i.attrs['longitude']) 
関連する問題