FreeBSD Manual Pages
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)
NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO | HISTORY | AUTHORS
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>
