Treat XPath expressions as Python objects
Project description
XPath-expressions
This is a small, lightweight Python 3.5+ library to aide in the manipulations of xpath expressions. It allows you to manipulate them as Python objects with Python expressions and operators.
Install
pip install xpath-expressions
Quickstart
from xpath import Expression, Attribute root_node = Expression('/root') print(root_node.children) # /root/* print(root_node.name) # name(/root) print(root_node.attributes[1]) # /root/@*[1] print(root_node / 'abc' / 'def') # /root/abc/def # Filtering expressions: print(root_node.text == 'abc') # /root/text()='abc' expr = Attribute('abc') == 'def' print(expr) # @abc='def' print(root_node.children[expr]) # /root/*[@abc='def'] # The library handles quoting for you: expr = Attribute('abc') == "def'" filtered2 = root_node.children[expr] # /root/*[@abc="def'"] # You can use xpath functions: from xpath import func # Pass arguments like usual expr = func.string_length(root_node.name) print(expr) # string-length(name(/root/)) # And treat those as normal expressions print(expr == 5) # string-length(name(/root/)) == 5 # The library normalizes python reserved names: print(func.or_()) # or() # Use custom namespaces from xpath import Functions ns_functions = Functions('my-ns:') print(ns_functions.something()) # my-ns:something()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for xpath_expressions-1.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1735044772bee6f0826a3f00e5cc9b7710de901f345e98a8ecd3df91f44792a |
|
MD5 | 6bcab7c2e40ddd54b72c7bb3f8194384 |
|
BLAKE2-256 | 51a1bf514394d1e2b804abe87d34f3bd2f95276f360172aff53b3a4f3173519c |