| Server IP : 172.67.201.108 / Your IP : 216.73.216.101 Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/python3.9/site-packages/elementpath/xpath31/ |
Upload File : |
#
# Copyright (c), 2018-2020, SISSA (International School for Advanced Studies).
# All rights reserved.
# This file is distributed under the terms of the MIT License.
# See the file 'LICENSE' in the root directory of the present
# distribution, or http://opensource.org/licenses/MIT.
#
# @author Davide Brunato <[email protected]>
#
"""
XPath 3.1 implementation
"""
from ..namespaces import XPATH_MAP_FUNCTIONS_NAMESPACE, \
XPATH_ARRAY_FUNCTIONS_NAMESPACE # , XSLT_XQUERY_SERIALIZATION_NAMESPACE
from ..xpath30 import XPath30Parser
class XPath31Parser(XPath30Parser):
"""
XPath 3.1 expression parser class.
"""
version = '3.1'
SYMBOLS = XPath30Parser.SYMBOLS | set()
"""
{
'format-number', 'random-number-generator', 'collation-key',
'contains-token', 'parse-ietf-date',
# Higher-order functions
'sort', 'apply', 'load-xquery-module', 'transform',
# Maps and Arrays
'merge', 'size', 'keys', 'contains', 'get', 'find', 'put', 'entry',
'remove', 'append', 'subarray', 'remove', 'join', 'flatten',
# Functions on JSON Data
'parse-json', 'json-doc', 'json-to-xml', 'xml-to-json',
}
"""
DEFAULT_NAMESPACES = {
'map': XPATH_MAP_FUNCTIONS_NAMESPACE,
'array': XPATH_ARRAY_FUNCTIONS_NAMESPACE,
**XPath30Parser.DEFAULT_NAMESPACES
}
##
# XPath 3.0 definitions
register = XPath31Parser.register
unregister = XPath31Parser.unregister
literal = XPath31Parser.literal
prefix = XPath31Parser.prefix
infix = XPath31Parser.infix
infixr = XPath31Parser.infixr
method = XPath31Parser.method
function = XPath31Parser.function
XPath31Parser.build()