Skip to main content

Full file(content) tree → XML

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xmltree-0.1.1.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xmltree-0.1.1-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file xmltree-0.1.1.tar.gz.

File metadata

  • Download URL: xmltree-0.1.1.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.8

File hashes

Hashes for xmltree-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8333c18aad426149090730b764ffd67611f5047312b1621c53542f8d5f8cbe82
MD5 5581766499b06ac77126e58b3937f6f0
BLAKE2b-256 1ef483e75eb2bba5ebdbbec609128e4724ae4620c38ca828086a7821094ff6f8

See more details on using hashes here.

File details

Details for the file xmltree-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: xmltree-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.8

File hashes

Hashes for xmltree-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 039ed0d1105d2521d902f3257b6ad877ceccd7fad661f00e8b29532ca4105731
MD5 fbe2d83b26f0ce948f8724350c752d12
BLAKE2b-256 905ff326ce8936b41c216f2ed7832f7dc687faba3844469f081336747174fcdb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page