---
name: "dctrl2xml"
section: "1"
platform: "linux"
package: "dctrl2xml"
version: "0.24"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/dctrl2xml"
---

# dctrl2xml(1)

Debian control data to XML converter

## NAME

dctrl2xml - Debian control data to XML converter

## SYNOPSIS

FC**dctrl2xml**F\[0\]  \[-x \| -j\] \[-f *FILE*\]

## DESCRIPTION

**dctrl2xml** is a tool that converts Debian control data into an XML representation. It can be used to convert data which is normally found in debian/control, .changes, .dsc, Packages, Sources, and similar files to XML.

For most fields **dctrl2xml** just uses the field name as element name and the field data as element content. For other fields, such as package interrelationship fields (Depends, Build-Depends, etc.) or the Files field in .changes or Sources files, **dctrl2xml** additionally parses their field data to represent it in a more fine-structured form.

## OPTIONS

For a full summary of options, run **dctrl2xml** FC**--help**F\[0\].

- FC**--version**F\[0\]

  Show dctrl2xml's version number.

- FC**-h**F\[0\], FC**--help**F\[0\]

  Show help about options.

- FC**-f** F\[0\]*FILE*, FC**--file=**F\[0\]*FILE*

  Read Debian control data from file *FILE* instead of standard input. *FILE* can be either a plain text file or a gzip, bzip2 or ZIP file.

- FC**-x**F\[0\], FC**--xml**F\[0\]

  Output Debian control data as XML (default).

- FC**-j**F\[0\], FC**--json**F\[0\]

  Output Debian control data as JSON.

## EXAMPLES

- FC**dctrl2xml -f /var/lib/dpkg/available**F\[0\]

  Convert the whole  [**dpkg**(1)](/dpkg/1.md) available file to XML and print it to standard output. This is a typical stress test for **dctrl2xml**.

- FC**apt-cache show hello build-essential \| dctrl2xml**F\[0\]

  Convert the package records of the hello and build-essential packages to XML and print it to standard output. This is an example of how **dctrl2xml** can be used in pipes where it reads the control data from standard input.

- FC**apt-cache showsrc hello \| dctrl2xml \| xmllint --format -**F\[0\]

  This is similar to the above example, except that the [**xmllint**(1)](/xmllint/1.md) tool (which is in the libxml2-utils Debian package) is used to reformat and reindent **dctrl2xml**'s output to make it more human readable and that the source package records of the hello package are used.

- FC**apt-cache showsrc hello \| dctrl2xml -j**F\[0\]

  In this example hello's source package record is printed as JSON instead of XML.

## SEE ALSO

[**deb-control**(5)](/deb-control/5.md)

## AUTHOR

Written by Frank S. Thomas \<FCfst@debian.orgF\[0\]\>.
