BeautifulSoup:按标签名称解析儿童

时间:2014-08-18 13:10:29

标签: python beautifulsoup parent-child

我有一个坐标如下的xml:

<geo>
 <lat>52.5025100</lat>
 <lng>13.3086000</lng>
</geo>

我可以解析第一个和第二个孩子的字符串(存储在列表中),如下所示:

child_1=soup.find('geo').contents[1].get_text(strip=True)
child_2=soup.find('geo').contents[3].get_text(strip=True)

假设我必须处理多个文件,并且我不确定lat和long是否总是以上述顺序出现,索引不起作用,因为它不可靠。而不是这个,我想解析lat和long作为geo的孩子的标签名称。

这不起作用:

child_1=soup.find('geo').contents('lat').get_text(strip=True)

那么我怎么能实现这个目标呢?

注意latlong在文档中多次出现。因此,我无法直接解析latlong

的文档

1 个答案:

答案 0 :(得分:3)

您可以使用tag name

直接访问节点的子元素
geo = soup.find('geo')
print geo.lat.get_text(strip=True)
print geo.lng.get_text(strip=True)