Make XML documents more easily accessible
Project description
xmltread
xmltramp was originally created by Aaron Swartz for simple-yet-powerful parsing of RSS and other xml files.
It is a small, fast alternative to heavyweight parsers like BeautifulSoup and ElementTree.
It has been mildly rewritten for python 3 compatibility, including bringing the packaging up to date so it can once again be installed via pip. Sadly, python modules can no longer be built from a single source file, but the tweaked original xmltramp lives inside of xmltread.
from xmltread import xmltramp
works, so you don't need to replace xmltramp with xmltread in your code.
Installation
via pip:
pip install xmltread
Usage
Everyone's got their data in XML these days. You need to read it. You've looked at the other XML APIs and they all contain miles of crud that's only necessary when parsing the most arcane documents. Wouldn't it be nice to have an easy-to-use API for the normal XML documents you deal with? That's xmltramp:
>>> sample_xml = """<doc version="2.7182818284590451"
xmlns="http://example.org/bar"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:bbc="http://example.org/bbc">
<author><name>John Polk</name> and <name>John Palfrey</name></author>
<dc:creator>John Polk</dc:creator>
<dc:creator>John Palfrey</dc:creator>
<bbc:show bbc:station="4">Buffy</bbc:show>
</doc>"""
>>> import xmltramp
>>> doc = xmltramp.Namespace("http://example.org/bar")
>>> bbc = xmltramp.Namespace("http://example.org/bbc")
>>> dc = xmltramp.Namespace("http://purl.org/dc/elements/1.1/")
>>> d = xmltramp.parse(sample_xml)
>>> d
<doc version="2.7182818284590451">...</doc>
>>> d('version')
'2.7182818284590451'
>>> d(version='2.0')
>>> d('version')
'2.0'
>>> d._dir
[<author>...</author>, <dc:creator>...</dc:creator>, <dc:creator>...</dc:creator>, <bbc:show bbc:station="4">...</bbc:show>]
>>> d._name
('http://example.org/bar', 'doc')
>>> d[0] # First child.
<author>...</author>
>>> d.author # First author.
<author>...</author>
>>> str(d.author)
'John Polk and John Palfrey'
>>> d[dc.creator] # First dc:creator.
<dc:creator>...</dc:creator>
>>> d[dc.creator:] # All creators.
[<dc:creator>...</dc:creator>, <dc:creator>...</dc:creator>]
>>> d[dc.creator] = "Me!!!"
>>> str(d[dc.creator])
'Me!!!'
>>> d[bbc.show](bbc.station)
'4'
>>> d[bbc.show](bbc.station, '5')
>>> d[bbc.show](bbc.station)
'5'
Credits
Based on the original by Aaron Swartz.
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
File details
Details for the file xmltread-0.3.tar.gz
.
File metadata
- Download URL: xmltread-0.3.tar.gz
- Upload date:
- Size: 45.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3355231a6ace6d81edf3185ec04c38031b4178ad0c95187e1c4a2f6412ff15b4 |
|
MD5 | 63bba28c8bf49ae1ca826c8f9ec4ee31 |
|
BLAKE2b-256 | 0f271d69dd8f106b7a6bbb99af8ff8cbfb2f99924111d6b6ccc1f0685f1b869d |
File details
Details for the file xmltread-0.3-py3-none-any.whl
.
File metadata
- Download URL: xmltread-0.3-py3-none-any.whl
- Upload date:
- Size: 31.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66b515d8b78a7445edf871d597266763932e591557d38859512d56b7e9d51e05 |
|
MD5 | f992012af91bab1d45ff1b6d79955e0a |
|
BLAKE2b-256 | 999e964bf19534b9a3eb536efc5b8dd4a1441346165e1dac50f854ce4d2a7fed |