NAME
xo_attr
,
xo_attr_h
, xo_attr_hv
— Add attribute name/value pairs
to formatted output
LIBRARY
library “libxo”
SYNOPSIS
#include
<libxo/xo.h>
int
xo_attr
(const
char *name, const char
*fmt, ...);
int
xo_attr_h
(xo_handle_t
*handle, const char
*name, const char *fmt,
...);
int
xo_attr_hv
(xo_handle_t
*handle, const char
*name, const char
*fmt, va_list
vap);
DESCRIPTION
Thexo_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.