【发布时间】:2016-07-02 04:41:07
【问题描述】:
假设我从我的终端给出了 参数: 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
【问题讨论】:
-
我们在哪里可以找到其余的代码?
-
您正在使用
{http://something.com}之类的命名空间 - 这些与您显示的 XML 示例不匹配,因为它没有指定命名空间。 -
Err,你的逻辑不对 - 认为应该是:搜索一个 NVP 标签,然后 within 该标签确认有一个 CHECK 并修改 DIGIT跨度>
-
抱歉忘记粘贴其余代码的链接... [stackoverflow.com/questions/36015120/…
-
@barny 我没有包含整个 XML,这只是其中的一部分。 XML 有一个根,其中包含“{something.com}”