如何在python中生成xml不会自动删除字符串前后的空白

2024-06-09 19:11:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我怎样才能使python中的xml不自动删除字符串前后的空格,因为必须执行的字符串(string nick)使用的是前后的空格,我需要从(https://code.google.com/p/storm-bot/downloads/list)风暴bot jabber

例如:

groupchat = 'jabberow@conference.jabber.ru'  
nick = '      sherlock     ' (example nick that using whitespace at front & behind)  

def order_visitor(groupchat, nick, reason):  
   iq = xmpp.Iq('set')  
   iq.setTo(groupchat)  
   iq.setID('ulti_visitor')  
   query = xmpp.Node('query')  
   query.setNamespace('http://jabber.org/protocol/muc#admin')  
   query.addChild('item', {'nick':nick, 'role':'visitor'})  
   iq.addChild(node=query)  
   JCON.send(iq)  

我也试过这样做:

room = 'jabberow@conference.jabber.ru'  
nick = '      sherlock       ' (example nick that using whitespace at front & behind)  

setvisitor = xmpp.simplexml.XML2Node(unicode("<iq to='"+str(room)+"' type='set' id='itemmuc'><query xmlns='http://jabber.org/protocol/muc#admin'><item role='visitor' nick='"+str(nick)+"'/></query></iq>").encode('utf8'))  

JCON.send(setvisitor)  

但结果是字符串前后的空格(字符串尼克)仍然被自动删除,并且始终作为“sherlock”而不是“sherlock”执行,即使我已经尝试删除所有strip()

有人能帮我吗


Tags: 字符串examplerubotxmppquerynickjabber
1条回答
网友
1楼 · 发布于 2024-06-09 19:11:57

没有办法做到这一点,因为即使在那里放置空格,解析XML文件时也不会保留空格。XML标准说属性值中的空白将被“规范化”,即在前面和结尾剥离,剥离字符串中的任何空白都将被一个空格替换

参见标准中的相关章节:http://www.w3.org/TR/2006/REC-xml11-20060816/#AVNormalize

相关问题 更多 >