XPath functions and extensions
1) How can I add custom functions to the default namespace if they are named the same as the standard functions?
If I specify a namespace with a prefix, a custom function works fine:
from lxml import etree
_function_ns = etree.FunctionN
_function_ns.prefix = 'a'
def _dummy_count(arg):
return 10
_function_
_xml = etree.Element(
print _xml.xpath(
Output is '10.0'.
But if I add the function to the default namespace, I've got an error:
from lxml import etree
_function_ns = etree.FunctionN
def _dummy_count(arg):
return 10
_function_
_xml = etree.Element(
print _xml.xpath(
Output:
Traceback (most recent call last):
File "/Users/
print _xml.xpath(
File "src/lxml/
File "src/lxml/
File "src/lxml/
lxml.etree.
Seems it doesn't recognise my 'count(arg)' function and use standard 'count(...)' instead.
It works fine with custom functions that are not conflicting with standard functions, but how can I specify a custom function with one of the standard functions name?
2) Seems I can use xpath functions from 'fn' namespace without declaring the namespace:
from lxml import etree
_xml = etree.Element(
print _xml.xpath(
Output is 'test'.
But I cannot call them as functions from 'fn' namespace:
from lxml import etree
_xml = etree.Element(
print _xml.xpath(
Output:
Traceback (most recent call last):
File "/Users/
print _xml.xpath(
File "src/lxml/
File "src/lxml/
File "src/lxml/
lxml.etree.
And I cannot use other xpath functions, like the functions from 'math' namespace:
from lxml import etree
_xml = etree.Element(
print _xml.xpath(
Output:
Traceback (most recent call last):
File "/Users/
print _xml.xpath(
File "src/lxml/
File "src/lxml/
File "src/lxml/
lxml.etree.
Is there a way to use xpath functions from 'fn', 'math' and other namespaces?
---
Python : sys.version_
lxml.etree : (4, 3, 0, 0)
libxml used : (2, 9, 9)
libxml compiled : (2, 9, 9)
libxslt used : (1, 1, 32)
libxslt compiled : (1, 1, 32)
Question information
- Language:
- English Edit question
- Status:
- Expired
- For:
- Ubuntu lxml Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply: