Я работаю над серверным приложением, которое получает данные через сокет TCP в XMPP-подобном формате XML, то есть каждый дочерний элемент элемента <root>
по существу представляет один отдельный запрос (раздел). Соединение закрывается, как только </root>
получено.
Я действительно знаю, что должен каким-то образом использовать анализатор потоков, такой как SAX. Хотя для удобства я предпочел бы иметь древовидный интерфейс для доступа к дочерним элементам каждой строфы. (Данные, отправляемые с каждым запросом, невелики, поэтому я думаю, что имеет смысл читать каждый раздел в целом.)
Какой лучший способ реализовать это в Python (желательно v3)?
Это код, в который я хотел бы встроить его. Не стесняйтесь указывать мне совершенно другое направление для решения этой проблемы.
import socketserver
import settings
class MyServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass
class MyRequestHandler(socketserver.StreamRequestHandler):
def handle(self):
pass
if __name__ == '__main__':
server = MyServer((settings.host, settings.port), MyRequestHandler)
server.serve_forever()