假设下面是xml文件的示例。
<AVP code="123" name="abcd">
<type>
<high/>
</type>
</AVP>
<AVP code="234" name="ukbkj">
<type>
<enum/>
</type>
<enum name="erdf"/>
<enum name="asdc"/>
.....
.....
(here we can add many enum name 2 4 7 9 whatever)
</AVP>
<State>
</State>
在这个xml文件中,我必须添加具有所有属性的AVP(参见上面的代码,从“AVP tag”到“/ AVP tag”)。但是添加应该在State标签之前完成。另外我们必须检查如果avp类型是“enum /”标签,那么我们在“/ Type”标签之后添加“enum name”标签,可以是任何数字,我可以用“while循环”实现但是如果它不是“enum /”标签,那么在“/ Type”标签之后不会添加任何内容。
示例我想添加2个avps one,代码= 909,name = earth,type = high。 另一个代码= 169,name = universe,type = enum(当enum到来时)然后用户添加要求枚举名称,这应该在循环中完成,最后它应该是break以便控制可以出来。输入应该添加到xml文件中。 我想做的是在while循环中: 要求用户输入如1的选项以插入AVP 2以删除,并输入3以退出: 如果用户输入1,则提供avp代码,其名称,类型等。 如果他插入2然后删除AVP(我不希望你们都回答这个请忽略删除操作) 如果他插入然后它将通过使用break退出
答案 0 :(得分:-1)
while True:
choice = str(input("Press 1 to Insert 2 to Delete 3 to exit "))
if choice == '1':
avp_code = raw_input("enter avp code: ")
avp_name = raw_input("enter avp name: ")
avp_type = raw_input("enter the avp type: ")
vendor_id = raw_input("enter the vendor Id: ")
line1 = '\t\t<AVP code="'+avp_code+'" name="'+avp_name+'" vendor-id="'+vendor_id+'">\n\t\t\t<type>\n\t\t\t\t<'+avp_type+'/>\n\t\t\t</type>'
line2 = ''
while avp_type == "enum":
enum_type = raw_input("enter enumeration name: ")
line2 += '\n\t\t\t<enum name="'+enum_type+'"/>'
enum_choice = raw_input("Add another enumeration name: yes Or no: ")
if enum_choice == "yes":
continue
else:
break
line3 = '\n\t\t</AVP>'
lines = line1 + line2 + line3
for line in fileinput.input(GMPS_TOP + "_hss1/dra/test.xml", inplace=True):
if line.strip() == '</Base>':
print lines
print line,
if choice == 3:
break
享受!!!