使用argpar替换XML中的数字

2024-04-20 07:59:59 发布

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

假设我从终端给出参数:python xyz.py --values [ 2 4 5 ]。我想把这些数字替换成一个XML文件,我该怎么做?你知道吗

我的XML文件如下所示:

<DP>
  <NVP>
     <CHECK>NameX_1</CHECK>
     <DIGIT>3</DIGIT>
  </NVP>
  <NVP>
     <CHECK>NameX_2</CHECK>
     <DIGIT>20</DIGIT>
  </NVP>
  <NVP>
     <CHECK>NameX_2</CHECK>
     <DIGIT>100</DIGIT>
</DP>

当用户给出参数时,应该替换XML中的数字。所以3 -> 2, 20 -> 4,和2 -> 5。你知道吗

for digits in tree.findall(getDigit.format(namespace)):
    matchCheck = digits.find('{http://something.com}CHECK').text 
        if matchCheck == mathcName:
            digitNumber = digits.find('{http://something.com}DIGIT').text
            convertToString = ' '.join([str(mystring) for mystring in args.value]) #Convert to string

            digits.find('{http://something.com}DIGIT').text = convertToString #This allows the script to changes the digit in the xml file
            tree.write("test.xml", encoding='utf-8', xml_declaration=True)
        else: print"NO MATCHES\n"

您可以在这里找到其余的代码:Code


Tags: thetextincomhttp参数checknvp
1条回答
网友
1楼 · 发布于 2024-04-20 07:59:59

不清楚您的问题是关于代码的argparse端还是xml端。你知道吗

但如果你定义

parser = argparse.ArgumentParser()
parser.add_argument(' values', nargs='+')
args = parser.parse_args()
values = args.values
print(values)

然后呼叫(无括号)

python xyz.py  values 2 4 5

应该打印

[2, 4, 5]

也就是说values将是一个由3个数字组成的列表。对这三个数字的处理是代码的xml编辑部分的责任。你知道吗

相关问题 更多 >