我目前正在进行一个不是我的项目并且需要更新,我被困在这里,试图将 rpc-reply 解析为字符串,以便可以将其解析为 xml。整个项目是由其他人编写的,他/她使用 Python 2,现在我需要使用 Python 3.6,但它不起作用。我尝试了一些我在网上找到的替代方法,但它们都不起作用(例如这个https://mihird.com/parsing-junos-rpc-reply-with-beautifulsoup4/)。
这些是给我带来问题的功能,响应参数是<class 'ncclient.operations.rpc.RPCReply'>
.
def is_successful(response):
import io
doc = parsexml_(io.StringIO(response))
rootNode = doc.getroot()
success_list = rootNode.xpath("//*[local-name()='ok']")
if len(success_list) > 0:
return True, None
else:
reason_return = ''
reason_list = rootNode.xpath("//*[local-name()='error-message']")
for reason in reason_list:
reason_return = '%s %s' % (reason_return, reason.text)
return False, reason_return
def parsexml_(*args, **kwargs):
if 'parser' not in kwargs:
kwargs['parser'] = ET.ETCompatXMLParser()
doc = ET.parse(*args, **kwargs)
return doc
非常感谢您提前提供的帮助!