2021-12-08 23:08:25
调用Python脚本时传递XML字符串作为参数可能会导致错误,因为某些特殊字符可能被操作系统或Python解释器解释为命令或代码。为了避免这个问题,可以将XML字符串作为一个文本文件传递,或者使用base64编码将字符串编码为非特殊字符。下面是两种方法的示例。
方法一:将XML字符串保存到文件,并将文件名作为参数传递:
将XML字符串保存到一个文件,例如input.xml。
修改Python脚本以接受文件名作为参数:
import sys
import xml.etree.ElementTree as ET
filename = sys.argv[1]
with open(filename, 'r') as file:
xml_string = file.read()
xml_root = ET.fromstring(xml_string)
调用脚本时传递文件名:python xxx.py input.xml
方法二:使用base64编码:
对XML字符串进行base64编码:
import base64
xml_string = '<?xml version="1.0" encoding="UTF-8"?>...'
encoded_xml = base64.b64encode(xml_string.encode()).decode()
修改Python脚本以接受base64编码的字符串作为参数:
import sys
import base64
import xml.etree.ElementTree as ET
encoded_xml = sys.argv[1]
decoded_xml = base64.b64decode(encoded_xml.encode()).decode()
xml_root = ET.fromstring(decoded_xml)
调用脚本时传递base64编码的字符串:python xxx.py "base64_encoded_string"
以上两种方法都可以有效地避免在传递XML字符串时产生的错误。请根据实际需求选择合适的方法。
2023-06-16 15:13:00
2022-04-29 22:43:34
2023-03-12 02:04:03