Python BeautifulSoup с дополнительными тегами - PullRequest
0 голосов
/ 30 июня 2011

Позвольте мне привести пример:

    from BeautifulSoup import BeautifulStoneSoup
    root = '''  <all2>
                    <images>
                        <image>
                            <name> Picture </name>
                            <url> www.thing.com</url>
                        </image>
                        <image> 
                            <name> Another one! </name>
                        </image>
                    </images>
                </all2>
                      '''

soup = BeautifulStoneSoup(root)
for img in soup.all2.images.findAll("image"):
    iname = img.i_name
    iurl = img.url
    print iname
    print iurl

Пусть тег будет необязательным. В этом случае вторая итерация не сможет найти тег, и будет выдано исключение:

AttributeError: у объекта 'NoneType' нет атрибута 'renderContents'

Я бы хотел, чтобы iurl был None, если дополнительный тег не отображается. Это возможно? Или мое понимание XML неверно.

1 Ответ

1 голос
/ 30 июня 2011

Что вы хотите с 'nameTag' ???

Документация BeautifulSoup четко говорит вам использовать

  iname = img.name.renderContents()
  iurl = img.url.renderContents()

Ноль причин изобретать новый синтаксис или семантику здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...