4 from dbus.mainloop.glib import DBusGMainLoop
6 from xml.dom import minidom
8 from accessible_cache import AccessibleCache
10 DBusGMainLoop(set_as_default=True)
12 def createNode(accessible, parentRef, parentElement):
13 e = minidom.Element("accessible")
15 e.attributes["reference"] = accessible.path
17 e.attributes["parent"] = accessible.parent.path
20 e.attributes["name"] = accessible.name
21 e.attributes["role"] = str(int(accessible.role))
22 e.attributes["description"] = accessible.description
24 for i in accessible.interfaces:
25 itf = minidom.Element("interface")
26 itf.attributes["name"] = i
29 for i in range(0, accessible.numChildren):
30 createNode(accessible.getChild(i), accessible.path, e)
32 parentElement.appendChild(e)
36 bus = dbus.SessionBus()
38 loop = gobject.MainLoop()
40 cache = AccessibleCache(bus, 'test.atspi.tree', '/org/freedesktop/atspi/tree')
41 root = cache.getRootAccessible()
43 doc = minidom.Document()
44 createNode(root, '/', doc)
46 file = open(filename, 'w')
47 file.write(doc.toprettyxml())
50 if __name__ == '__main__':
51 sys.exit(main(sys.argv))