dpkq: data picker


dpkq is a tool from the Epeios project which picks a random record stored in a XML file and put it in another XML file with an XSL file association so it can be displayed in a Web Browser in a HTML layout.

dpkq works with GNU/Linux (and probably other POSIX compliant operating systems), macOS and Windows, on IA-32, AMD64 and ARM (AArch32 and AArch64, like those on Raspberry Pi, Banana Pi, ODROID… devices) architectures.


See the compilation dedicated page to see how to obtain the binaries.

Two files called dpkq.xcfg and dpkq.xlcl have to be in the same directory as the one containing the binary.

The data file

See the dedicated page.

Take also a look to the examples page.

The output file

See the dedicated page.


See the configuration dedicated page.

Other configurations parameters are generally put in a project file, which filename is given as a command-line argument (see dpkq --help), like following:

<?xml version="1.0" encoding="utf-8"?>
	<Project target="dpkq">
  • OutputFilename is the name of the generated XML file (hence generally suffixed with .xml) which contains the picked record,
  • DataFilename is the name of the XML file (hence also generally suffixed with .xml) from where the record is picked,
  • XSLFilename is the name of the file containing the XSL stylesheet (hence generally suffixed with .xsl) which should be applied on the file referenced by OutputFilename ; XSLFilename is added in a <?xml-stylesheet …?> processing instruction into the OutputFilename file, so that the XSLT processing is performed automatically when the output file is opened in a Web browser,
  • if the delay between two successive calls of dpkq on project files using same ContextFilename (which is generated by dpkq) exceeds SessionDuration minutes, the session related data are reseted.
  • ViewerCommand usually contains the command to launch to open the output file name in a Web Browser ; it can contain following markers:
    • $RI$: the record index,
    • $RL$: the record label,
    • $TI$: the table index,
    • $TL$: the table label,
    • $LB$: the last box for the current session,
    • $CB$: the box containing the record,
    • $Data$: the data filename,
    • $Output$: the output filename,
    • $XSL$: the XSL filename,
    • $$: the $ character.


dpkq is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Other rights can be granted, but only by an explicitly written permission from the author of dpkq.




dpkq is developed by Claude SIMON (http://q37.info/contact/).

Other resources