4Suite API Documentation

Module Ft.Xml.XPath.Util

General utilities for XPath applications
Copyright 2005 Fourthought, Inc. (USA).
Detailed license and copyright information: http://4suite.org/COPYRIGHT
Project home, documentation, distributions: http://4suite.org/


Given an XPath expression as a string, returns an object that allows an evaluation engine to operate on the expression efficiently. This "compiled" expression object can be passed to the Evaluate function instead of a string, in order to shorten the amount of time needed to evaluate the expression.
Evaluate(expr, contextNode=None, context=None)
Evaluates the given XPath expression.
Two arguments are required: the expression (as a string or compiled
expression object), and a context. The context can be given as a
Domlette node via the 'contextNode' named argument, or can be given as
an Ft.Xml.XPath.Context.Context object via the 'context' named

If namespace bindings or variable bindings are needed, use a
Context object. If extension functions are needed, either use a
Context object, or set the EXTMODULES environment variable to be a
':'-separated list of names of Python modules that implement
extension functions.

The return value will be one of the following:
node-set: list of Domlette node objects (xml.dom.Node based);
string: Unicode string type;
number: float type;
boolean: Ft.Lib.boolean C extension object;
or a non-XPath object (i.e. as returned by an extension function).
ExpandQName(qname, refNode=None, namespaces=None)
Expand the given QName in the context of the given node, or in the given namespace dictionary.
Returns a 2-tuple consisting of the namespace URI and local name.
NormalizeNode is used to prepare a DOM for XPath evaluation.
1.  Convert CDATA Sections to Text Nodes.
2.  Normalize all text nodes (adjacent nodes are merged into the first one).
SimpleEvaluate(expr, node, explicitNss=None)
Designed to be the most simple/brain-dead interface to using XPath Usually invoked through Node objects using: node.xpath(expr[, explicitNss])
expr - XPath expression in string or compiled form
node - the node to be used as core of the context for evaluating the XPath
explicitNss - (optional) any additional or overriding namespace mappings
              in the form of a dictionary of prefix: namespace
              the base namespace mappings are taken from in-scope
              declarations on the given node.  This explicit dictionary
              is superimposed on the base mappings