@@ 1,6 1,6 @@
#!/usr/bin/python3
# xgrep.py -- search for elements in XML files, using XPath 1.0 expressions
-# Andreas Nolda 2020-04-26
+# Andreas Nolda 2021-06-25
import sys
import argparse
@@ 8,7 8,7 @@ import re
from blessings import Terminal
from lxml import etree
-version=2.9
+version = 2.9
parser = argparse.ArgumentParser()
parser.add_argument("expr",
@@ 37,7 37,7 @@ parser.add_argument("-N", "--declare-ns"
help="declare namespaces in matches")
parser.add_argument("-q", "--quiet", action="store_true",
help="only return exit status")
-parser.add_argument("-r", "--regex", metavar="ns", nargs=1,
+parser.add_argument("-r", "--regex", metavar="ns",
help="namespace prefix for EXSLT regular expressions")
parser.add_argument("-v", "--version", action="version",
version="{0} {1}".format(parser.prog, version))
@@ 180,7 180,7 @@ def main():
nsexpr = insert_default_ns(args.expr, nsmap)
# add regexp namespace *after* inserting default namespace
if args.regex:
- nsmap[args.regex[0]] = "http://exslt.org/regular-expressions"
+ nsmap[args.regex] = "http://exslt.org/regular-expressions"
matches = tree.xpath(nsexpr, namespaces=nsmap)
if not args.quiet:
if args.files_without_match: