2013-10-06 4 views
0

Привета у меня есть ответ, как нижеBeautifulSoup не анализирует содержимое тега как первое имя, которое содержит «-»

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<person> 
<first-name>hede</first-name> 
<last-name>hodo</last-name> 
<headline>Python Developer at hede</headline> 
<site-standard-profile-request> 
<url>http://www.linkedin.com/profile/view?id=hede&amp;authType=godasd*</url> 
</site-standard-profile-request> 
</person> 

И я хочу, чтобы разобрать содержание вернулось с Вишлисты апи.

Я использую BeautifulSoup как ниже

ipdb> hede = BeautifulSoup(response.content) 
ipdb> hede.person.headline 
<headline>Python Developer at hede</headline> 

Но когда я делать

ipdb> hede.person.first-name 
*** NameError: name 'name' is not defined 

Любые идеи?

+0

BeautifulSoup является HTML-парсер, используйте фактический синтаксический анализатор XML для этой задачи. –

ответ

1

Имена атрибутов Python не могут содержать hypen. Вместо этого используйте

hede.person.findChild('first-name') 

Кроме того, для разбора XML с BeautifulSoup, используйте

hede = bs.BeautifulSoup(content, 'xml') 

или если у вас есть lxml установлен,

hede = bs.BeautifulSoup(content, 'lxml') 
Смежные вопросы