python,美丽的汤,xml解析

时间:2017-05-01 17:37:08

标签: python xml parsing beautifulsoup

如何从以下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 个答案:

答案 0 :(得分: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'])

答案 1 :(得分:2)

&#39;纬度&#39;是&#39;坐标中的一个属性。标签。找到坐标后,汤对象将所有属性存储在类似dict的键值存储中。

因此,在您的情况下,找到坐标标记后,请检查“纬度”&#39;关键如下:

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

您甚至可以在开头或结尾处删除任何无关空格的结果:

loginClicked