summaryrefslogtreecommitdiffstats
path: root/utils_xslt.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils_xslt.py')
-rw-r--r--utils_xslt.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/utils_xslt.py b/utils_xslt.py
index 2e09582..de4ec02 100644
--- a/utils_xslt.py
+++ b/utils_xslt.py
@@ -41,3 +41,18 @@ def xslt_params(**d):
k, xslt_boolean(v) if isinstance(v, bool) else v
)
return ret
+
+
+def xslt_id_friendly(inner):
+ """Make the passed XPath expression yielding string XML ID friendly"""
+ # XXX apostrophe missing
+ return '''\
+ translate(
+ translate(
+ {0},
+ ' -/:',
+ '____'
+ ),
+ '!"#$%&()*+,;<=>?@[\]^`{{|}}~',
+ ''
+ )'''.format(inner)