Wie Textknoten mit lxml.etree finden?
Verfasst: Montag 15. September 2008, 16:05
Hi!
Ich habe diesen Code mit html5lib geparst:
Ich möchte nun den String after bold zurückbekommen. Als Neuling bin ich mir aber nicht sicher wie ich das anstellen kann. Ich habe schon probiert alle Textknoten, die Nachfahren von span-Elementen sind, zu scrapen, bin aber nicht sicher ob das so richtig ist:
Ich habe das auf Grundlage von Artikeln zu XPath gemacht, die aber nicht explizit in Verbindung zu lxml standen. Wird diese Syntax vielleicht auch gar nicht von lxml implementiert? Dann würde ich mich über Alternativvorschläge freuen.
Gruß
Sebastian
Ich habe diesen Code mit html5lib geparst:
Code: Alles auswählen
html = '<html><span><b>bold</b> after bold</span><span>normal</span></html>'
Code: Alles auswählen
for elem in doc.findall('.//child::span::text()'): print elem
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
for elem in doc.findall('.//child::span::text()'): print elem
File "lxml.etree.pyx", line 1701, in lxml.etree._ElementTree.findall (src/lxml/lxml.etree.c:16145)
File "lxml.etree.pyx", line 1303, in lxml.etree._Element.findall (src/lxml/lxml.etree.c:12800)
File "C:\Python25\Lib\site-packages\lxml\_elementpath.py", line 225, in findall
return list(iterfind(elem, path))
File "C:\Python25\Lib\site-packages\lxml\_elementpath.py", line 200, in iterfind
selector = _build_path_iterator(path)
File "C:\Python25\Lib\site-packages\lxml\_elementpath.py", line 184, in _build_path_iterator
selector.append(ops[token[0]](_next, token))
KeyError: '::'
Gruß
Sebastian