0
我需要創建一個XML文件,這需要N作爲一個來自用戶的輸入,看起來像這樣的XML文件(這裏,N = 3):文本追加到使用Python元素樹庫
<test name="test1">
<parameter name="username" value="bhusriva1" />
<classes>
<class name="bhuv.mllab.tests.DensityTest" />
</classes>
</test>
<test name="test2">
<parameter name="username" value="bhusriva2" />
<classes>
<class name="bhuv.mllab.tests.DensityTest" />
</classes>
</test>
<test name="test3">
<parameter name="username" value="bhusriva3" />
<classes>
<class name="bhuv.mllab.tests.DensityTest" />
</classes>
</test>
所以,爲了使這一點,我創建了下面的代碼,如下圖所示:
from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element
import xml.etree.ElementTree as etree
#Number of users to create: Edit this part
N_users = 1
#Counter to terminate the loop and ID's
counter = 0
usr_num = 1
root = Element('test')
root.text = '<parameter name="username" value="bhusriva1" />'
tree = ElementTree(root)
name = Element('classes')
root.append(name)
name.text = '\n<class name="bhuv.mllab.tests.DensityTest" />\n'
root.set('name', 'test1')
print(etree.tostring(root))
tree.write(open('create_users_multi_browser.xml', 'w'))
while (N_users - 1) > counter:
counter = counter + 1
usr_num = usr_num + 1
root = Element('test')
temp1 = "<parameter name=" + "\"" + "username"+ "\"" + " value=" + "\"" + "bhusriva" + str(usr_num) + "\"" +" />"
root.text = temp1
tree = ElementTree(root)
name = Element('classes')
root.append(name)
name.text = '<class name="bhuv.mllab.tests.DensityTest" />'
temp2 = "test" + str(usr_num)
root.set('name', temp2)
print(etree.tostring(root))
tree.write(open("create_users_multi_browser.xml", "a"))
這裏,爲N_users = 1
,代碼工作正常,但對於N_users > 1
,它給在Internet Explorer下面的輸出:
<parameter name="username" value="bhusriva1" /> <class name="bhuv.mllab.tests.DensityTest" />
那麼,在代碼中需要糾正什麼?有一些不同的庫用法的全新代碼對我來說也很好。