Version 1 (modified by cmlenz, 18 years ago) (diff) |
---|
Using XPath in Markup
Markup provides basic XPath support for matching and querying event streams.
Limitations
Due to the streaming nature of the processing model, Markup uses only a subset of the XPath 1.0 language.
In particular, only the following axes are supported:
- attribute
- child
- descendant
- descendant-or-self
- namespace (not completed yet)
- self
In addition, Markup does not (yet) support numeric types in XPath: everything is treated as text or booleans. For that reason, relational or additive operators such as >, <, or <=.
Querying Streams
from markup.input import XML doc = XML('''<doc> <items count="2"> <item status="new"> <summary>Foo</summary> </item> <item status="closed"> <summary>Bar</summary> </item> </items> </doc>''') print doc.select('items/item[@status="closed"]/summary/text()')
This would result in the following output:
Bar
Matching in Templates
See also: MarkupGuide?, MarkupStream