lxml.cssselect module¶
CSS Selectors based on XPath.
This module supports selecting XML/HTML tags based on CSS selectors. See the CSSSelector class for details.
This is a thin wrapper around cssselect 0.7 or later.
-
class
lxml.cssselect.
CSSSelector
(css, namespaces=None, translator='xml')[source]¶ Bases:
lxml.etree.XPath
A CSS selector.
Usage:
>>> from lxml import etree, cssselect >>> select = cssselect.CSSSelector("a tag > child") >>> root = etree.XML("<a><b><c/><tag><child>TEXT</child></tag></b></a>") >>> [ el.tag for el in select(root) ] ['child']
To use CSS namespaces, you need to pass a prefix-to-namespace mapping as
namespaces
keyword argument:>>> rdfns = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#' >>> select_ns = cssselect.CSSSelector('root > rdf|Description', ... namespaces={'rdf': rdfns}) >>> rdf = etree.XML(( ... '<root xmlns:rdf="%s">' ... '<rdf:Description>blah</rdf:Description>' ... '</root>') % rdfns) >>> [(el.tag, el.text) for el in select_ns(rdf)] [('{http://www.w3.org/1999/02/22-rdf-syntax-ns#}Description', 'blah')]
-
class
lxml.cssselect.
LxmlHTMLTranslator
(xhtml=False)[source]¶ Bases:
lxml.cssselect.LxmlTranslator
,cssselect.xpath.HTMLTranslator
lxml extensions + HTML support.