Skip to main content

xmltree

Full file(content) tree → XML

Installation

# Install globally with uv (recommended)
uv tool install xmltree

# Or use directly without installing
uvx xmltree

# Or install with pipx
pipx install xmltree

Usage

# Convert current directory
xmltree

# Convert specific directory
xmltree /path/to/project

# Save to file
xmltree -o project.xml

# Only include specific file types
xmltree -I "*.py" -I "*.md"

# Exclude additional patterns  
xmltree -i "*.log" -i "temp/*"

# Show absolute paths
xmltree --full-paths

# Compact output
xmltree --compact

Example

Given a project structure:

example_project/
├── src/
│   ├── __init__.py
│   ├── main.py
│   └── utils/
│       └── helpers.py
├── tests/
│   └── test_main.py
├── .gitignore
├── README.md
└── pyproject.toml

Running xmltree example_project produces:

<?xml version="1.0" encoding="UTF-8"?>
<directory path="example_project">
  <directory path="src">
    <file path="src/__init__.py">
      <content><![CDATA[
"""Example package."""

__version__ = "0.1.0"]]></content>
    </file>
    <!-- ... more files ... -->
  </directory>
  <file path="README.md">
    <content><![CDATA[
# Example Project

This is a sample project to demonstrate xmltree.]]></content>
  </file>
</directory>

Features

  • Converts directory structures to well-formed XML
  • Respects .gitignore files by default
  • Supports custom ignore and include patterns
  • Pretty-printed output by default
  • File contents wrapped in CDATA sections
  • Pipe-friendly for use with other tools

Why XML?

XML's explicit closing tags make structure unambiguous, unlike YAML's error-prone indentation. File contents can be wrapped in CDATA sections preserving exact formatting, while JSON would require escaping every quote and newline.

Metadata

Release files for xmltree 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xmltree 0.1.1
File Size Uploaded
xmltree-0.1.1.tar.gz 16.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xmltree 0.1.1
File Interpreter ABI Platform
xmltree-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 24.7 kB

Release files / xmltree-0.1.1.tar.gz

Download URL xmltree-0.1.1.tar.gz
Size 16.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8333c18aad426149090730b764ffd67611f5047312b1621c53542f8d5f8cbe82
BLAKE2b-256 checksum
How to use checksums
1ef483e75eb2bba5ebdbbec609128e4724ae4620c38ca828086a7821094ff6f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.8

Release files / xmltree-0.1.1-py3-none-any.whl

Download URL xmltree-0.1.1-py3-none-any.whl
Size 8.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
039ed0d1105d2521d902f3257b6ad877ceccd7fad661f00e8b29532ca4105731
BLAKE2b-256 checksum
How to use checksums
905ff326ce8936b41c216f2ed7832f7dc687faba3844469f081336747174fcdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.8

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page