xo_attr_hv, libxo, xo_attr, xo_attr_h(3) | Add attribute name/value pairs to formatted output |
xo_attr, libxo, xo_attr_h, xo_attr_hv(3) | Add attribute name/value pairs to formatted output |
xo_attr_h, libxo, xo_attr, xo_attr_hv(3) | Add attribute name/value pairs to formatted output |
LIBXO(3) | MidnightBSD Library Functions Manual | LIBXO(3) |
xo_attr
,
xo_attr_h
, xo_attr_hv
— Add attribute name/value pairs to formatted
output
Text, XML, JSON, and HTML Output Emission Library (libxo, -lxo)
#include
<libxo/xo.h>
xo_ssize_t
xo_attr
(const
char *name, const char
*fmt, ...);
xo_ssize_t
xo_attr_h
(xo_handle_t
*handle, const char
*name, const char *fmt,
...);
xo_ssize_t
xo_attr_hv
(xo_handle_t
*handle, const char
*name, const char
*fmt, va_list
vap);
The
xo_attr
()
function emits attributes for the XML output style. The attribute value is
recorded in the handle and is attached to the next
field that is emitted via a
xo_emit(3) call.
The name parameter give the
name of the attribute to be encoded. The fmt parameter
gives a printf-style format string used to format the value of the attribute
using any remaining arguments, or the vap parameter as
passed to
xo_attr_hv
().
EXAMPLE: xo_attr("seconds", "%ld", (unsigned long) login_time); struct tm *tmp = localtime(login_time); strftime(buf, sizeof(buf), "%R", tmp); xo_emit("Logged in at {:login-time}\n", buf); XML: <login-time seconds="1408336270">00:14</login-time>
Since attributes are only emitted in XML, their use should be limited to meta-data and additional or redundant representations of data already emitted in other form.
The libxo
library first appeared in
FreeBSD 11.0.
libxo
was written by Phil
Shafer
<phil@freebsd.org>.
July, 2014 | midnightbsd-3.1 |