調用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字符串時產生的錯誤。請根據實際需求選擇合適的方法。