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

FreeBSD Manual Pages

  
 
  

home | help
XO(1)			    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 us-
       ing the same commands that emit text output.

       --close path
	       Close tags for the given	path

       -C | --continuation
	       Indicates this output is	a continuation of the previous	output
	       data  and  should appear	on the same line.  This	is allows HTML
	       output to be constructed	correctly.

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

       --not-first
	       Indicate	that this content is not the first in a	series of sib-
	       ling objects, which is vital  information  for  "JSON"  output,
	       which requires a	comma between such objects.

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

       --top-warp
	       Indicates the entire object should be placed inside a top-level
	       object wrapper, specifically when generating JSON output.

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

FreeBSD	14.3		       December	4, 2014				 XO(1)

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

home | help