Skip to main content

Make XML documents more easily accessible

Project description

xmltread

Tests

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


Download files

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

Source Distribution

xmltread-0.3.tar.gz (45.1 kB view details)

Uploaded Source

Built Distribution

xmltread-0.3-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

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

Hashes for xmltread-0.3.tar.gz
Algorithm Hash digest
SHA256 3355231a6ace6d81edf3185ec04c38031b4178ad0c95187e1c4a2f6412ff15b4
MD5 63bba28c8bf49ae1ca826c8f9ec4ee31
BLAKE2b-256 0f271d69dd8f106b7a6bbb99af8ff8cbfb2f99924111d6b6ccc1f0685f1b869d

See more details on using hashes here.

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

Hashes for xmltread-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 66b515d8b78a7445edf871d597266763932e591557d38859512d56b7e9d51e05
MD5 f992012af91bab1d45ff1b6d79955e0a
BLAKE2b-256 999e964bf19534b9a3eb536efc5b8dd4a1441346165e1dac50f854ce4d2a7fed

See more details on using hashes here.

Supported by

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