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
.gitignorefiles 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8333c18aad426149090730b764ffd67611f5047312b1621c53542f8d5f8cbe82
|
|
| MD5 |
5581766499b06ac77126e58b3937f6f0
|
|
| BLAKE2b-256 |
1ef483e75eb2bba5ebdbbec609128e4724ae4620c38ca828086a7821094ff6f8
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
039ed0d1105d2521d902f3257b6ad877ceccd7fad661f00e8b29532ca4105731
|
|
| MD5 |
fbe2d83b26f0ce948f8724350c752d12
|
|
| BLAKE2b-256 |
905ff326ce8936b41c216f2ed7832f7dc687faba3844469f081336747174fcdb
|