Skip to content
A library for converting XML into native data according to a template akin to css-selector.
Python
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
xml2data
.gitignore
LICENSE
README.md
buildout.cfg
setup.py

README.md

xml2data

xml2data is a Python library for converting xml into native data, according to css-selector like template.

Requirements

Python 2.7

Install

python setup.py install

Example

the following converts a webpage containing some app information:

import xml2data
template = """{
  'apps': [div#main-container div.section:first-child div.goods-container div.goods @ {
      'name': div.top span.name,
      'url': div.top span.name a $[href],
      'description': div.goods div.bottom
  }],
  'author': div#main-container div.section div.text p a:first-child $text,
  'twitter': div#main-container div.section div.text p a:nth-child(2) $[href]
}"""
data = xml2data.urlload('http://hp.vector.co.jp/authors/VA038583/', template)

results:

data == {
  'apps': [{
      'name': 'copipex',
      'url': './down/copipex023.zip',
      'description': '<コピー⇒貼付け> が <マウスで範囲選択⇒クリック> で可能に'
    }, {
      'name': 'gummi',
      'url': './gummi.html', 
      'description': 'ウィンドウの任意の部分を別窓に表示。操作も可能'
    }, {
      'name': 'PAWSE',
      'url': './down/pawse032.zip',
      'description': 'Pauseキーで、アプリケーションの一時停止、実行速度の制限が可能に'
    }, {
      'name': 'onAir',
      'url': './onair.html',
      'description': '現在放送中のテレビ番組のタイトルを一覧表示'
    }],
  'author': 'slay', 
  'twitter': 'http://twitter.com/slaypni'
}
Something went wrong with that request. Please try again.