Decoder/encoder for Konami's binary XML format
Go to file
2017-12-08 00:13:42 +10:00
.gitignore Initial commit 2017-06-13 19:57:04 +10:00
bytebuffer.py Fix 1 byte sixbit names 2017-06-28 20:47:05 +10:00
format_ids.py Python 3 compatibility, fix decode errors. Closes #5 2017-06-26 19:39:53 +10:00
kbinxml.py Minor readability improvements and bugfixes 2017-12-08 00:13:42 +10:00
README.md Switch to lxml, completely fix Unicode, add test cases 2017-07-05 17:51:47 +10:00
sixbit.py Python 3 compatibility, fix decode errors. Closes #5 2017-06-26 19:39:53 +10:00
test.py Fix unicode in attr values 2017-07-21 01:00:13 +10:00
testcases_out.kbin Fix unicode in attr values 2017-07-21 01:00:13 +10:00
testcases_out.xml Fix unicode in attr values 2017-07-21 01:00:13 +10:00
testcases.xml Fix unicode in attr values 2017-07-21 01:00:13 +10:00

kbinxml

An encoder/decoder for Konami's binary XML format, used in some of their games.

Setup:

pip install bitarray lxml

Additionally for Python 2:
pip install future

In [1]: from kbinxml import KBinXML
In [2]: text = KBinXML('<?xml version="1.0"?><root __type="str">Hello, world!</root>')
In [3]: text.to_binary()
Out[4]: b'\xa0B\x80\x7f\x00\x00\x00\x08\x0b\x04\xdfM9\xfe\xff\x00\x00\x00\x00\x14\x00\x00\x00\x0eHello, world!\x00\x00\x00'

In [5]: bin = KBinXML(Out[4])
In [6]: bin.to_text()
Out[7]: u'<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<root __type="str">Hello, world!</root>\n'