SecondLifeで現在、webから換金情報をXMLでダウンロードできるようになっています。ので、pythonでさくさくっとパースするクラスを作りました。
pythonは2.5で動作確認。2.4だと動くかどうか不明。
#!/usr/bin/python # # written by a.yasui <a.yasui@gmail.com> # # ex, ISBN:9784873112763 -- Python Cookbook 12.7 import sys import re from xml.sax import saxutils, parse import xml.sax.handler TRANSACTION_MATCH = re.compile(r'^(:?transaction_)\d+$', re.I) class SLTransactionHandler(xml.sax.handler.ContentHandler): def __init__ (self): self._charas = [ ] self._root = [ ] # Root node self._transaction = [ ] # transaction Node self._dict = dict() # inner node self.hash_ref = [ ] # output def characters(self, content): self._charas.append(content) def startElement (self, name, attrs): if name == "transactions" : pass elif TRANSACTION_MATCH.match(name) : self._transaction = [ ] else : self._charas = [ ] def endElement (self, name): if name == "transactions" : pass elif TRANSACTION_MATCH.match(name) : self.hash_ref.append(self._dict) else : self._dict[name] = "".join(self._charas) if __name__ == '__main__': handler = SLTransactionHandler() parse(sys.argv[1], handler) print handler.hash_ref