Найти - Пользователи
Полная версия: xpath_list через тег br в найденом ноде ломаетса список
Начало » Python для новичков » xpath_list через тег br в найденом ноде ломаетса список
1
agryn
g.go('http://drlz.kiev.ua/ibp/ddsite.nsf/all/shlz1?opendocument&stype=7A203E58C7891C5EC22578B900347BA7')
lzdata = g.xpath_list('//tr[@valign="top"]/td[@bgcolor="F8F8F8"]/text()')

выражение
 (//tr[@valign="top"]/td[@bgcolor="F8F8F8"])
находит необходимый мне участок, но иногда в найденном участке кода есть тег <br> и тогда, список стает больше на количество тегов <br>, тоесть етот тег делит необходимый мне текст надвое. Ка мне сделать что б xpath_list игнорировал этот тег
reclosedev
<br> вообще гадский тэг.
Есть вариант сделать запрос на узлы (без text()), а потом уже эти узлы превращать в текст:
lzdata = g.xpath_list('//tr[@valign="top"]/td[@bgcolor="F8F8F8"]')
for i, td in enumerate(lzdata):
    lzdata[i] = td.text_content()

Хотя, может и есть способ игнорировать <br>.
lorien
А в чём проблема?

print ‘ ’.join(elem.xpath('…./text()'))

Или так:

elem = g.xpath('…./td')
for subnode in elem.xpath('br'):
subnode.getparent().remove(subnode)
print elem.text
reclosedev
lorien
А в чём проблема?
По-моему, у ТС в lzdata должно быть количество элементов равное количеству строк в таблице, чтобы можно было установить соответствие.
agryn
Хорошо, тогда подскажите как с полученного узла не удалить тег <br>, а заменить скажем на “; ”?
agryn
lorien
print ‘ ’.join(elem.xpath('…./text()'))
До чего это? Я понятно сформулировал проблему, этот кусок кода выводит текст первого найденного элемента с пробелом между буквами.

lorien
elem = g.xpath('/…/td')
for subnode in elem.xpath('br'):
subnode.getparent().remove(subnode)
print elem.text
Я так понял эта конструкция должна была удалять тег <br>, но этот кусок кода не работает вообще.
lorien
> До чего это? Я понятно сформулировал проблему, этот кусок кода выводит текст первого найденного элемента с пробелом между буквами.
Опечатался, там надо xpath_list использовать, а не xpath.

> Я так понял эта конструкция должна была удалять тег <br>, но этот кусок кода не работает вообще.
Ну так поправьте, чтоб заработала. Что значит не работает вообще? Вы предлагаете нам телепатически определить как именно она “не работает вообще”?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB