Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XO(1)			  BSD General Commands Manual			 XO(1)

NAME
     xo	-- emit	formatted output based on format string	and arguments

SYNOPSIS
     xo	[-options] [argument...]

DESCRIPTION
     The xo utility allows command line	access to the functionality of the
     libxo library.  Using xo, shell scripts can emit XML, JSON, or HTML using
     the same commands that emit text output.

     --close path
	     Close tags	for the	given path

     --depth num
	     Set the depth for pretty printing

     --help  Display help text

     -H	| --html
	     Generate HTML output

     -J	| --json
	     Generate JSON output

     --leading-xpath path
	     Add a prefix to generated XPaths (HTML)

     --open path
	     Open tags for the given path

     -p	| --pretty
	     Make 'pretty' output (add indent, newlines)

     --style style
	     Generate given style (xml,	json, text, html)

     -T	| --text
	     Generate text output (the default style)

     --version
	     Display version information

     -W	| --warn
	     Display warnings in text on stderr

     --warn-xml
	     Display warnings in xml on	stdout

     --wrap path
	     Wrap output in a set of containers

     -X	| --xml
	     Generate XML output

     --xpath
	     Add XPath data to HTML output

     The xo utility accepts a format string suitable for xo_emit(3) and	a set
     of	zero or	more arguments used to supply data for that string.

     In	addition, xo accepts any of the	libxo options listed in	xo_options(7).

EXAMPLES
     In	this example, xo is used to emit the same data encoded in text and
     then in XML by adding the "-p" (pretty) and "-X" (XML output) flags:

	     % xo 'The {:product} is {:status}\n' stereo "in route"
	     The stereo	is in route
	     % xo -p -X	'The {:product}	is {:status}\n'	stereo "in route"
	     <product>stereo</product>
	     <status>in	route</status>

     In	this example, the output from a	xo command is shown in several styles:

	     xo	"The {k:name} weighs {:weight/%d} pounds.\n" fish 6

	     TEXT:
	       The fish	weighs 6 pounds.
	     XML:
	       <name>fish</name>
	       <weight>6</weight>
	     JSON:
	       "name": "fish",
	       "weight": 6
	     HTML:
	       <div class="line">
		 <div class="text">The </div>
		 <div class="data" data-tag="name">fish</div>
		 <div class="text"> weighs </div>
		 <div class="data" data-tag="weight">6</div>
		 <div class="text"> pounds.</div>
	       </div>

     The --wrap	<path> option can be used to wrap emitted content in a spe-
     cific hierarchy.  The path	is a set of hierarchical names separated by
     the '/' character.

	     xo	--wrap top/a/b/c '{:tag}' value

	     XML:
	       <top>
		 <a>
		   <b>
		     <c>
		       <tag>value</tag>
		     </c>
		   </b>
		 </a>
	       </top>
	     JSON:
	       "top": {
		 "a": {
		   "b":	{
		     "c": {
		       "tag": "value"
		     }
		   }
		 }
	       }

     The --open	<path> and --close <path> can be used to emit hierarchical in-
     formation without the matching close and open tag.	 This allows a shell
     script to emit open tags, data, and then close tags.  The --depth option
     may be used to set	the depth for indentation.  The	--leading-xpath	may be
     used to prepend data to the XPath values used for HTML output style.

	     #!/bin/sh
	     xo	--open top/data
	     xo	--depth	2 '{tag}' value
	     xo	--close	top/data

	     XML:
	       <top>
		 <data>
		   <tag>value</tag>
		 </data>
	       </top>
	     JSON:
	       "top": {
		 "data": {
		   "tag": "value"
		 }
	       }

SEE ALSO
     libxo(3), xo_emit(3), xo_options(7)

HISTORY
     The libxo library first appeared in FreeBSD 11.0.

AUTHORS
     libxo was written by Phil Shafer <phil@freebsd.org>.

BSD			       December	4, 2014				   BSD

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=xo&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help