如何使用Python将XML文件发送到RabbitMQ? [英] How to send a XML file to RabbitMQ using Python?

查看:288
本文介绍了如何使用Python将XML文件发送到RabbitMQ?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为Test.xml的xml文件,我正在尝试使用python发送RabbitMQ.

I am having an xml file called Test.xml which I am trying to send RabbitMQ using python.

我知道以下有关Rabbit MQ的详细资料

I know below deatails regarding the Rabbit MQ

Hostname: xxx.xxxx.xxx

AMQP Port (SSL)  :4589

ESB Portal (Message Search): http://xxx.xxx.xxx:8585

RabbitMQ Web UI (https) :https://xxx.xxx.xxxx:15672 

如何从python做到这一点?

How can this be done from python?

推荐答案

可以使用 pika完成,您可以读取文件内容并将其作为大字符串发送到RabbitMQ.另一方面,您可以使用ElementTree.fromstring解析内容.

This can be done using pika, you can read the file content and send it as a big string to RabbitMQ. And on the other side you can parse the content using ElementTree.fromstring.

连接详细信息:

credentials = pika.PlainCredentials('username', 'password')
conn = pika.BlockingConnection(pika.ConnectionParameters('host', port, 'vhost', credentials))
channel = conn.channel()

发布者:

with open('filename.xml', 'r') as fp:
    lines = fp.readlines()
channel.basic_publish('exchange', 'queue', ''.join(lines))

消费者:

def on_message(unused_channel, unused_method_frame, unused_header_frame, body):
    lines = body.decode()
    doc = ElementTree.fromstring(lines)
    tags = doc.findall("tag")

    ## DO YOUR STUFF HERE

channel.basic_consume('queue', on_message)
channel.start_consuming()

希望这会有所帮助!

RabbitMQ流:

参考: RabbitMQ文档

这篇关于如何使用Python将XML文件发送到RabbitMQ?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆