【问题标题】:Get result from xml code with python使用 python 从 xml 代码中获取结果
【发布时间】:2014-11-24 20:40:49
【问题描述】:

我有一个来自 nimbuzz 聊天应用程序的 xml 代码,它使用输入关键字在 nimbuzz 服务器中搜索聊天室。

<iq type="set" id="Nimbuzz_SearchRooms" to="conference.nimbuzz.com"><query xmlns="jabber:iqearch"><set xmlns="http://jabber.org/protocol/rsm"><index>0</index><max>10</max></set><x type="get" xmlns="jabberata"><field var="name"><value>**INPUT KEYWORD FOR ROOM NAME**</value></field><field var="include_password_protected"><value>true</value></field></x></query></iq>

代码正在运行,我得到以下结果作为 xml 代码:

查看图片:

The result code image

我从这段代码开始,但我无法完成它,因为我无法理解它是如何工作的:

def handler_search_room(type, source, parameters):
    Key_word = raw_input("Please write the Key word: ")
    if parameters.split():
        iq = xmpp.Iq('set')
        iq.setID('Nimbuzz_SearchRooms')
        iq.setTo('conference.nimbuzz.com)

我需要将第一个代码发送到 nimbuzz 服务器,然后我需要获取包含每个聊天室信息的结果。 结果代码应该为每个聊天室获取此信息:

  • 姓名

  • 主题。

  • 用户数

  • num_max_users

  • is_passowrd_protected

  • is_member_only

  • 语言

  • 位置类型

  • 位置

如何用 python 做到这一点?如果有人能帮助我编写代码,我会很高兴。

如果需要,请下载 XML 代码:

http://qfs.mobi/f1833350

【问题讨论】:

    标签: python xml python-2.7 xml-parsing


    【解决方案1】:
    def handler_akif_room(type, source, parameters):
            room = parameters
            if parameters.split():
            iq = xmpp.Iq('set')
            iq.setID('Nimbuzz_SearchRooms')
                    iq.setTo('conference.nimbuzz.com')
                    query = xmpp.Node('query') 
                    query.setNamespace('jabber:iq:search')
                    iq.addChild(node=query) 
    
                    sett = xmpp.Node('set')
                    sett.setNamespace('http://jabber.org/protocol/rsm')
                    query.addChild(node=sett)
    
                    sifir = "0"
                    ind = xmpp.Node('index')
                    ind.setData(sifir)
                    sett.addChild(node=ind)
    
                    on = "10"
                    maxx = xmpp.Node('max')
                    maxx.setData(on)
                    sett.addChild(node=maxx)
    
                    qqx = xmpp.Node('x')
                    qqx.setNamespace('jabber:x:data" type="get')
                    query.addChild(node=qqx)
    
                    field = xmpp.Node('field')
                    field.setAttr('var','name')
                    field.setData(' ') 
                    qqx.addChild(node=field)
    
                    valueone = xmpp.Node('value')
                    valueone.setData(room)
                    field.addChild(node=valueone)
    
    
    
                    fieldtwo = xmpp.Node('field')
                    fieldtwo.setAttr('var','include_password_protected')
                    fieldtwo.setData(' ')
                    qqx.addChild(node=fieldtwo)
    
                    valuetwo = xmpp.Node('value')
                    valuetwo.setData('true')
                    fieldtwo.addChild(node=valuetwo)
    
    
            JCON.SendAndCallForResponse(iq, handler_akif_room_answ, {'type': type, 'source': source})
            msg(source[1], u''+str(iq)+' .') ## <= OUT SHOW :)) GOOD WORK! CONTACT ME akif@nimbuzz.com :)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多