XML, the Perl Way


NAME

xmlgrep - grep XML files looking for specific elements


SYNOPSYS

xmlgrep [options] [file ...]

 Options:
   -help            brief help message
   -man             full documentation


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 returned

several --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

--nb_results <nb>
output only <nb> results

--encoding <enc>
encoding of the xml output (utf-8 by default)

--wrap <tag>
wrap the xml result in the provided tag (defaults to 'xml_grep')

--descr <string>
attributes of the wrap tag (defaults to version="<VERSION>" date="<date>")

--file_wrap <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

--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 used

short form for this arggument is -s

Condition Syntax

<cond> is an XPath-like expression as allowed by XML::Twig to trigger handlers.


exemples: 
  'para'
  'para[@compact="compact"]'
  '*[@urgent]'
  '*[@urgent="1"]'
  'para[string()="WARNING"]'

see XML::Twig for a more complete description of the <cond> syntax

options are processedby Getopt::Long so they can start with '-' or '--' and can be abbreviated (-r instead of --root for example)


DESCRIPTION

xmlgrep 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.


SEE ALSO

XML::Twig Getopt::Long


LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


AUTHOR

Michel Rodriguez <mirod@xmltwig.com>