作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试通过套接字从客户端向服务器发送xml字符串。这个想法是用ElementTree解析这个xml,然后使用获得的元素。
我可以成功地将字符串从客户端传递到服务器,但是无论我如何在客户端中构建xml(通过文件,三引号字符串或使用ElementTree包中的方法),在服务器中,我始终会收到错误消息
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 0
RemoteFunction = '''<?xml version="1.0"?>
<methodCall>
<methodName>somemethodname</methodName>
<params>
<param>
<value><string>somevalue</string></value>
</param>
<param>
<value><i4>1</i4></value>
</param>
<param>
<value><string>anothervalue</string></value>
</param>
</params>
</methodCall>'''
这是服务器中的连接处理程序函数
import xml.etree.ElementTree as ET
def client_handler( connection, address):
connected = True
while connected:
msgLen = connection.recv(64).decode("utf-8")
if msgLen:
msgLen = int(msgLen)
msg = connection.recv(msgLen).decode("utf-8")
if msg == "!Disconnect":
connected = False
tree = ET.fromstring(msg)
注意:我知道Python3中有一个XMLRPC库,但是我不允许使用它。
最佳答案
试试这个。
from simplified_scrapy import SimplifiedDoc
def client_handler( connection, address):
connected = True
while connected:
msgLen = connection.recv(64).decode("utf-8")
if msgLen:
msgLen = int(msgLen)
msg = connection.recv(msgLen).decode("utf-8")
if msg == "!Disconnect":
connected = False
doc = SimplifiedDoc(msg)
print (doc.methodName.text, doc.selects('param>text()'))
关于python-3.x - 如何从服务器端的字符串中使用Elementtree XML解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64214207/
我是一名优秀的程序员,十分优秀!