Main index | Section 3 | Options |
#include <libxo/xo.h>
To open a container, call xo_open_container() or xo_open_container_h(). The former uses the default handle and the latter accepts a specific handle.
To close a level, use the xo_close_container() or xo_close_container_h() functions.
Each open call should have a matching close call. If the XOF_WARN flag is set and the name given does not match the name of the currently open container, a warning will be generated.
Example:xo_open_container("top"); xo_open_container("system"); xo_emit("{:host-name/%s%s%s", hostname, domainname ? "." : "", domainname ?: ""); xo_close_container("system"); xo_close_container("top");
Sample Output: Text: my-host.example.org XML: <top> <system> <host-name>my-host.example.org</host-name> </system> </top> JSON: "top" : { "system" : { "host-name": "my-host.example.org" } } HTML: <div class="data" data-tag="host-name">my-host.example.org</div>
The close functions with the "_d" suffix are used in "Do The Right Thing" mode, where the name of the open containers, lists, and instances are maintained internally by libxo to allow the caller to avoid keeping track of the open container name.
Use the XOF_WARN flag to generate a warning if the name given on the close does not match the current open container.
For TEXT and HTML output, containers are not rendered into output text, though for HTML they are used when the XOF_XPATH flag is set.
EXAMPLE: xo_open_container("system"); xo_emit("The host name is {:host-name}0, hn); xo_close_container("system"); XML: <system><host-name>foo</host-name></system>
xo_set_flags(NULL, XOF_DTRT);Each open and close function has a version with the suffix "_d", which will close the open container, list, or instance:
xo_open_container("top"); ... xo_close_container_d();Note that the XOF_WARN flag will also cause libxo to track open containers, lists, and instances. A warning is generated when the name given to the close function and the name recorded do not match.
LIBXO (3) | December 4, 2014 |
Main index | Section 3 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
“ | If at first you don't succeed, you must be a programmer. | ” |