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	this help text

     --html OR -H	Generate HTML output

     --json OR -J	Generate JSON output

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

     --open <path>	Open tags for the given	path

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

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

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

     --version		Display	version	information

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

     --warn-xml		Display	warnings in xml	on stdout

     --wrap <path>	Wrap output in a set of	containers

     --xml OR -X	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.

	       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"
		 }
	       }

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

SEE ALSO
     libxo(3), xo_emit(3)

BSD			       December	4, 2014				   BSD

NAME | SYNOPSIS | DESCRIPTION | EXAMPLE | SEE ALSO

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

home | help