How *build* new elements and *replace* elements with xml.dom.minidom ?

Johannes Bauer dfnsonfsduifb at gmx.de
Fri Jun 12 00:29:22 CEST 2009


Stefan Behnel schrieb:

>> So I need to build hyperlinks (a elements) with href attribute and
>> replace the text elements (numbers) somehow.
> 
> Try lxml.html instead. It makes it really easy to do these things. For
> example, you can use XPath to find all table cells that contain numbers:
> 
> 	td_list = doc.xpath("//td[number() >= 0]")
> 
> or maybe using regular expressions to make sure it's an int:
> 
> 	td_list = doc.xpath("//td[re:match(., '^[0-9]+$')]",
>               namespaces={'re':'http://exslt.org/regular-expressions'})
> 
> and then replace them by a hyperlink:
> 
> 	# assuming links = ['http://...', ...]
> 
> 	from lxml.html.builder import A
> 	for td in td_list:
> 		index = int(td.text)
> 		a = A("some text", href=links[index])
> 		td.getparent().replace(td, a)

Oh no! I was looking for something like this for *ages* but always
fought with minidom - where this is a real pain :-(

Had I only known before that such a wonderful library exists. I'll
definitely use lxml from now on. Does it compile with Python3?

Kind regards,
Johannes

-- 
"Meine Gegenklage gegen dich lautet dann auf bewusste Verlogenheit,
verlästerung von Gott, Bibel und mir und bewusster Blasphemie."
         -- Prophet und Visionär Hans Joss aka HJP in de.sci.physik
                         <48d8bf1d$0$7510$5402220f at news.sunrise.ch>



More information about the Python-list mailing list