diff options
author | Jan Pokorný <jpokorny@redhat.com> | 2015-11-25 23:28:12 +0100 |
---|---|---|
committer | Jan Pokorný <jpokorny@redhat.com> | 2015-12-17 23:34:26 +0100 |
commit | 9880da710603fe1d18dfac732b904bca4cc26f5f (patch) | |
tree | 7c784fbd0b0ab9316a874a822e7d0ae89b3d8252 | |
parent | 30b591ccc46645944dfe690c844c1137347c7c5b (diff) | |
download | clufter-9880da710603fe1d18dfac732b904bca4cc26f5f.tar.gz clufter-9880da710603fe1d18dfac732b904bca4cc26f5f.tar.xz clufter-9880da710603fe1d18dfac732b904bca4cc26f5f.zip |
utils_xslt: xslt_id_friendly: new helper
Some offending ASCII characters are translated to '_', the remaining
ones (all or almost) are simply removed.
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
-rw-r--r-- | utils_xslt.py | 15 |
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) |