xmlstarlet supports XPath 1, but the W3C did not stop there. They made XPath 2 featuring variables, lists and regular expressions, XPath 3 featuring higher order function, and finally XPath 3.1 featuring JSON support.
That's news to me. Very cool actually. It's not far from jq on speed, either. Looks like you are the maintainer of this tool, so thanks!
~/xidel % time ./xidel - -e '?SitusAddress!(.)' < ~/parcels | wc
**** Processing: stdin:/// ****
29066 149317 903704
./xidel - -e '?SitusAddress!(.)' < ~/parcels 2.55s user 0.18s system 99% cpu 2.733 total
wc 0.01s user 0.00s system 0% cpu 2.733 total
~/xidel % time jq -r '.SitusAddress' < ~/parcels | wc
29066 149317 903704
jq -r '.SitusAddress' < ~/parcels 0.95s user 0.00s system 99% cpu 0.958 total
wc 0.00s user 0.01s system 1% cpu 0.957 total
It is more verbose, like you get the size of something with array:size or map:size functions, so it is more readable
I am implementing it in Xidel 0.9.9+: http://www.videlibri.de/xidel.html