xml_grep1p
Grep xml files looking for specific elements
Synopsys
xml_grep [options] <file list>
or
xml_grep <xpath expression> <file list>
By default you can just give "xml_grep" an XPath expression and a list of files, and get an XML file with the result.
This is equivalent to writing
xml_grep --group_by_file file --pretty_print indented --cond <file list>
Options
-
--help -
brief help message
-
--man -
full documentation
-
--Version -
display the tool version
-
--root <cond> -
look for and return xml chunks matching <cond>
if neither
"--root"nor"--file"are used then the element(s) that trigger the"--cond"option is (are) used. If"--cond"is not used then all elements matching the <cond> are returnedseveral
"--root"can be provided
-
--cond <cond> -
return the chunks (or file names) only if they contain elements matching <cond>
several
"--cond"can be provided (in which case they are OR'ed)
-
--files -
return only file names (do not generate an XML output)
usage of this option precludes using any of the options that define the XML output:
"--roots","--encoding","--wrap","--group_by_file"or"--pretty_print"
-
--count -
return only the number of matches in each file
usage of this option precludes using any of the options that define the XML output:
"--roots","--encoding","--wrap","--group_by_file"or"--pretty_print"
-
--strict -
without this option parsing errors are reported to STDOUT and the file skipped
-
--date -
when on (by default) the wrapping element get a
"date"attribute that gives the date the tool was run.with
"--nodate"this attribute is not added, which can be useful if you need to compare 2 runs.
-
--encoding <enc> -
encoding of the xml output (utf-8 by default)
-
--nb_results <nb> -
output only <nb> results
-
--by_file -
output only <nb> results by file
-
--wrap <tag> -
wrap the xml result in the provided tag (defaults to 'xml_grep')
If wrap is set to an empty string (
"--wrap ''") then the xml result is not wrapped at all.
-
--nowrap -
same as using
"--wrap ''": the xml result is not wrapped.
-
--descr <string> -
attributes of the wrap tag (defaults to
"version="<VERSION>" date="<date>"")
-
--group_by_file <optional_tag> -
wrap results for each files into a separate element. By default that element is named
"file". It has an attribute named"filename"that gives the name of the file.the short version of this option is
-g
-
--exclude <condition> -
same as using
"-v"in grep: the elements that match the condition are excluded from the result, the input file(s) is (are) otherwise unchangedthe short form of this option is
-v
-
--pretty_print <optional_style> -
pretty print the output using XML::Twig styles ('
"indented"', '"record"' or '"record_c"' are probably what you are looking for)if the option is used but no style is given then '
"indented"' is usedshort form for this argument is
-s
-
--text_only -
Displays the text of the results, one by line.
-
--html -
Allow HTML input, files are converted using HTML::TreeBuilder
-
--Tidy -
Allow HTML input, files are converted using HTML::Tidy
Condition Syntax
<cond> is an XPath-like expression as allowed by XML::Twig to trigger handlers.
examples:
'para'
'para[@compact="compact"]'
'*[@urgent]'
'*[@urgent="1"]'
'para[string()="WARNING"]'
see XML::Twig for a more complete description of the <cond> syntax
options are processed by Getopt::Long so they can start with '-' or '--' and can be abbreviated ("-r" instead of "--root" for example)
Overview
xml_grep does a grep on XML files. Instead of using regular expressions it uses XPath expressions (in fact the subset of XPath supported by XML::Twig)
the results can be the names of the files or XML elements containing matching elements.
Releases
10 releases since Debian 5.0 (Lenny); the text changed 9 times.
--Tidy since Debian 7 (Wheezy);
--Version since Debian 6.0 (Squeeze);
--by_file since Debian 7 (Wheezy);
--cond since Debian 6.0 (Squeeze);
--count since Debian 6.0 (Squeeze);
--date since Debian 6.0 (Squeeze);
--descr since Debian 6.0 (Squeeze);
--encoding since Debian 6.0 (Squeeze);
--exclude since Debian 6.0 (Squeeze);
--files since Debian 6.0 (Squeeze);
--group_by_file since Debian 6.0 (Squeeze);
--help since Debian 6.0 (Squeeze);
--html since Debian 7 (Wheezy);
--man since Debian 6.0 (Squeeze);
--nb_results since Debian 6.0 (Squeeze);
--nowrap since Debian 6.0 (Squeeze);
--pretty_print since Debian 6.0 (Squeeze);
--root since Debian 6.0 (Squeeze);
--strict since Debian 6.0 (Squeeze);
--text_only since Debian 6.0 (Squeeze);
--wrap since Debian 6.0 (Squeeze).